Mascherare le attività di scraping Web in modo che assomiglino alle normali attività di navigazione del browser?

c# html-agility-pack web-scraping

Domanda

Sto usando l'Html Agility Pack e continuo a ricevere questo errore. "Il server remoto ha restituito un errore: (500) Errore interno del server." su alcune pagine.

Ora non sono sicuro di cosa si tratta, in quanto posso utilizzare Firefox per arrivare a queste pagine senza problemi.

Ho la sensazione che il sito web stia bloccando e non invii una risposta. C'è un modo in cui posso rendere il mio pacchetto agility HTML più simile a una chiamata che viene chiamata da FireFox?

Ho già impostato un timer, quindi invia solo al sito web ogni 20 secondi.

C'è qualche altro metodo che posso usare?

Risposta accettata

Imposta un User-Agent simile a un normale browser. Un agente utente è un'intestazione http che viene passata dal client http (browser) per identificarsi sul server.


Risposta popolare

Ci sono molti modi in cui i server possono rilevare lo scraping e in realtà è solo una corsa agli armamenti tra raschietto e scrapee (?), A seconda di quanto male uno o l'altro voglia accedere / proteggere i dati. Alcune delle cose per aiutarti a non essere scoperti sono:

  1. Assicurati che tutte le intestazioni HTTP inviate siano le stesse di un normale browser, in particolare l'agente utente e il referente URL.
  2. Scarica tutte le immagini e gli script CSS come un normale browser, nell'ordine in cui lo farebbe un browser.
  3. Assicurati che tutti i cookie impostati siano inviati su ogni richiesta successiva
  4. Assicurati che le richieste vengano limitate in base al sito robots.txt
  5. Assicurati di non seguire alcun link no-follow perché il server potrebbe configurare un honeypot in cui smettere di servire le tue richieste ip
  6. Ottieni un gruppo di server proxy per variare il tuo indirizzo IP
  7. Assicurati che il sito non abbia iniziato a inviarti captcha perché pensano che tu sia un robot.

Di nuovo, l'elenco potrebbe continuare a seconda di quanto sia sofisticata l'installazione del server.




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é