Polska społeczność o zarabianiu przez internet, pracy w domu i dodatkowej pracy online Zobacz dzisiejsze dyskusje →
Zmień styl:BiałyMobilnyRetro

Wielka aktualizacja Zarabiam.com — zobacz pełną listę zmian

[POMOCY] C# Scrapowanie z wielu stron jednocześnie


Autor Wiadomość
Post: #1
[POMOCY] C# Scrapowanie z wielu stron jednocześnie
Sprawdź:
Cześć,
Szukam sposobu na wydobycie pewnych danych z wielu stron na raz. Na każdej stronie potrzebne dane są z tych samych wyrażeń XPATH. Używam HtmlAgilityPack.
Jakieś propozycje?
Dodam, że tych stron będzie koło 500 i baza będzie się zwiększać więc ręczne wpisywanie adresów odpada (odczytywanie adresów z pliku txt lub xls lub bezpośrednio z richTextBox'a będzie spoko).
Może jakieś wykonywanie skryptu w pętli ze zmianą adresu? Jak to zadeklarować?
Post: #2
RE: [POMOCY] C# Scrapowanie z wielu stron jednocześnie
Tworzysz klase NetConnection

Kod:
using System; using System.Net; namespace pl.xxx { class NetConnection : WebClient { private CookieContainer cookie = new CookieContainer(); protected override WebRequest GetWebRequest(Uri address) { WebRequest request = base.GetWebRequest(address); if (request is HttpWebRequest) { (request as HttpWebRequest).CookieContainer = cookie; //(request as HttpWebRequest).AllowAutoRedirect = false; } return request; } } }

Potem

Kod:
NetConnection connect = new NetConnection(); connect.DownloadString("adres");
Glosy: Ando (+1)
Post: #3
RE: [POMOCY] C# Scrapowanie z wielu stron jednocześnie
(06-05-2017, 23:18)xOceanFirex napisał(a): Tworzysz klase NetConnection

Kod:
using System; using System.Net; namespace pl.xxx { class NetConnection : WebClient { private CookieContainer cookie = new CookieContainer(); protected override WebRequest GetWebRequest(Uri address) { WebRequest request = base.GetWebRequest(address); if (request is HttpWebRequest) { (request as HttpWebRequest).CookieContainer = cookie; //(request as HttpWebRequest).AllowAutoRedirect = false; } return request; } } }

Potem

Kod:
NetConnection connect = new NetConnection(); connect.DownloadString("adres");

Przecież on nic nie pisał o tym, że ciasteczka muszą też być zaktualizowane..

To jest cały kod potrzebny do zrobienia tego, co zrobić chce autor. Jeśli faktycznie żeby scrapować musi być gdzieś zalogowany, lub aktualizować ciasteczka to można wykorzystać proste biblioteki np. RestSharp.
Kod:
HtmlWeb web = new HtmlWeb(); HtmlDocument doc = new HtmlDocument(); string[] urls = File.ReadAllLines("linki.txt"); string xPath = "//input[@type='foo']"; foreach (string url in urls) { try { doc = web.Load(url); File.AppendAllText($"results.txt", $"{url};{doc.DocumentNode.SelectSingleNode(xPath).GetAttributeValue("value","")}" + Environment.NewLine); } catch { File.AppendAllText($"results.txt", $"{url};ERROR" + Environment.NewLine); } }


Kiedyś też wstawiałem na forum coś takiego:
(25-10-2016, 15:17)coffee napisał(a): [Obrazek: b4849c827b.gif]
W tym przypadku do każdego linku scrapuje 6 podobnych filmów.
coffee, dumny członek http://zarabiam.com od Jan 2016.
Glosy: Ando (+1)
Post: #4
RE: [POMOCY] C# Scrapowanie z wielu stron jednocześnie
Lepiej było dodać mu z ciasteczkami, niż by miał pisać z prośbą o to.
Glosy: Ando (+1)
Post: #5
RE: [POMOCY] C# Scrapowanie z wielu stron jednocześnie
ma 500 stron i z każdej strony ma sobie skopiowac cookisy? xD

Sent from my SM-N7505 using Tapatalk
Glosy: Ando (+1)
Post: #6
RE: [POMOCY] C# Scrapowanie z wielu stron jednocześnie
Dzięki wielkie wszystkim za pomoc.
coffee dzięki Tobie udało mi się napisać to co chciałem Smile


Podobne wątki…
Wątek: Autor Odpowiedzi: Wyświetleń: Ostatni post
  Zarabianie na projektowaniu stron artur1000 8 9,181 08-03-2019, 19:54
Ostatni post: rachman
  Pomocy! c++ Grabek04 3 5,802 27-07-2018, 11:25
Ostatni post: twardy
Question [szukam] skrypt do tworzenia miniatur stron - screenów rachman 2 6,996 15-10-2017, 11:49
Ostatni post: surfer0700
  Tworzenie stron internetowych www - HTML 5, PHP, JavaScript ray111 2 5,945 18-06-2017, 21:57
Ostatni post: lakerr
  [Pomocy] Arduino html js myself93 2 5,394 08-06-2017, 08:15
Ostatni post: myself93

Skocz do: