C # HTMLAgilityPack Website ha bloccato il mio indirizzo IP

c# html-agility-pack ip proxy

Domanda

Stavo usando HTMLAgilityPack per ottenere l'HTML dal seguente sito Web: http://tennis.wettpoint.com/en/

Ha funzionato bene, ma ora .. dopo un'ora non funziona più!

Per prima cosa ho provato a cambiare il mio codice - su come recuperare l'HTML:

string url = "http://tennis.wettpoint.com/en/";
HtmlWeb hw = new HtmlWeb();
HtmlAgilityPack.HtmlDocument doc = hw.Load(url);
foreach (HtmlNode link in doc.DocumentNode.SelectNodes("//a[@href]"))
{
   //Code..
}

Come ho detto, funzionava sempre bene ... fino a quando il sito sembrava "inattivo" per me .. COSÌ ho cambiato il codice in:

string url = "http://tennis.wettpoint.com/en/";
HtmlWeb hw = new HtmlWeb();
HtmlAgilityPack.HtmlDocument doc = hw.Load(url);
foreach (HtmlNode link in doc.DocumentNode.SelectNodes("//a[@href]"))
{
   //Code..
}

(Che non ha funzionato per il mio sito, ma ha funzionato per un altro sito)

e almeno ora ho questo, che funziona anche, ma non per il mio sito:

string url = "http://tennis.wettpoint.com/en/";
HtmlWeb hw = new HtmlWeb();
HtmlAgilityPack.HtmlDocument doc = hw.Load(url);
foreach (HtmlNode link in doc.DocumentNode.SelectNodes("//a[@href]"))
{
   //Code..
}

Beh, all'inizio credevo che il sito fosse inattivo, perché non potevo accedere al sito con nessun Browser. Quindi ho chiesto ad amici e loro sono stati in grado di accedere al sito .. Quindi questo significa che il mio IP era stato bloccato .. Perchè. . Cosa posso fare? Devo cambiare il mio IP (come) o usare Proxys (come) .. Non ho idea, perché non ho detto che questo sarebbe successo :( Spero che qualcuno possa aiutarmi ..

Risposta accettata

Wikipedia monitora il numero di richieste che riceve da un indirizzo IP e vieta agli IP di graffiare in modo aggressivo il suo contenuto. Raschiare i risultati di ricerca di Google avrà lo stesso effetto.

Inizialmente Wikipedia vieterà solo per 24 ore, ma se continuate a "offendere", il vostro IP verrà bannato permanentemente.

Puoi: utilizzare i proxy nella tua HttpRequest per modificare il tuo indirizzo IP o rallentare le tue richieste.


Risposta popolare

Prima regola del gattonare: cortesia!

Ogni volta che esegui la scansione di un sito web devi assicurarti che il crawler rispetti le regole nel loro file robots.txt: http://tennis.wettpoint.com/robots.txt

User-agent: msnbot 
Crawl-delay: 1

User-agent: MJ12bot
Disallow: /

User-agent: sistrix
Disallow: /

User-agent: TurnitinBot
Disallow: /

User-agent: Raven
Disallow: /

User-agent: dotbot
Disallow: /

Ciò significa che msnbot è esplicitamente autorizzato a eseguire la scansione del sito Web con un ritardo di 1 secondo. MJ12bot, sistrix, TurnitinBot, Raven e dotbot NON sono esplicitamente autorizzati a eseguire la scansione di nessuno dei siti Web. Questa è la prima linea di difesa che vedrai da un sito web. Questo è il modo più educato per proteggere il loro sito web da abusi accidentali. Per maggiori informazioni su robots.txt, consultare qui: http://www.robotstxt.org/meta.html

Dovresti implementare un ragionevole ritardo di scansione (1-10 secondi) e vedere se ti consentono di eseguire nuovamente la scansione.

Regola numero due: fai attenzione alle trappole bot!

Questo non vale per te al momento, ma dovresti esserne uno in generale. Un modo per catturare i bot che non sono educati è mettere una regola esplicita nel robots.txt che vieta a tutti i robot di accedere a una directory specifica, come ad esempio:

User-agent: * Disallow: / the / epic / robot / trap / path

Poi da qualche parte nell'HTML c'è un link, che non è visibile agli umani, ma visibile ai bot:

User-agent: msnbot 
Crawl-delay: 1

User-agent: MJ12bot
Disallow: /

User-agent: sistrix
Disallow: /

User-agent: TurnitinBot
Disallow: /

User-agent: Raven
Disallow: /

User-agent: dotbot
Disallow: /

Chiaramente, nessun umano potrà mai vedere o fare clic su questo link se sta utilizzando un browser e nessun bot che segue le regole robots.txt andrà mai nel /the/epic/robot/trap/path . Tuttavia, i robot che non rispettano le regole robots.txt e raccolgono collegamenti interni per scopi di scansione finiranno per finire in quella directory, e ciò che li attende è una morte certa! Il gestore del sito Web probabilmente raccoglie e blocca tutti gli IP degli utenti che visitano quel link.




Autorizzato sotto: CC-BY-SA with attribution
Non affiliato con Stack Overflow
È legale questo KB? Sì, impara il perché
Autorizzato sotto: CC-BY-SA with attribution
Non affiliato con Stack Overflow
È legale questo KB? Sì, impara il perché