IPIPGO IP-Proxy Ruby Web Crawling: Nokogiri Parsing HTML Beispiel

Ruby Web Crawling: Nokogiri Parsing HTML Beispiel

Wenn ein Crawler auf ein CAPTCHA trifft? Versuchen Sie diesen Trick Kürzlich half ich meinem Freund, ein Preisüberwachungsskript zu erstellen, und schrieb einen Crawler in Ruby, aber am nächsten Tag hatte ich Pech - die Zielwebsite blockierte unsere IP. Erst dann erinnerte ich mich an die Sache mit der Proxy-IP, so wie wenn man einen Hot Pot isst und keine Dip-Sauce findet, also versuchte ich in der Zwischenzeit eine Lösung zu finden. Nokogi...

Ruby Web Crawling: Nokogiri Parsing HTML Beispiel

Wenn Crawler auf CAPTCHA treffen? Versuchen Sie dies.

Kürzlich half ich meinem Freund, ein Preisüberwachungsskript zu erstellen, und schrieb einen Crawler in Ruby, aber am nächsten Tag hatte ich eine Pause - die Ziel-Website blockierte unsere IP. Erst dann erinnerte ich mich an die Sache mit der Proxy-IP, wie wenn man einen Eintopf isst und keine Dip-Soße findet und auf der Stelle nach einer Lösung sucht.

Wie funktioniert diese Nokogiri-Sache?

Reden wir nicht über Proxies, sondern über die grundlegenden Tools. Nokogiri ist ein HTML-Parser, der leicht zu installieren ist:

gem install nokogiri

Um eine Kastanie zu geben, wollen den Preis von Waren in einem E-Commerce-Seite zu fangen, ist der Code wahrscheinlich lang wie diese:


erfordern 'nokogiri'
erfordern 'open-uri'

html = URI.open('https://example.com/product').read
doc = Nokogiri::HTML(html)
Preis = doc.css('span.price-class').first.text
puts "Aktueller Preis: {Preis}"

zur Kenntnis nehmenCss-SelektorWenn man es richtig macht, ist es so, als würde man versuchen, einen Schlüssel in ein Zahnrad einzupassen, und wenn man in den Chrome-Entwicklertools mit der rechten Maustaste auf ein Element klickt und "Auswahl kopieren" auswählt, spart man sich eine Menge Arbeit.

Was tun, wenn Ihre IP blockiert ist? Proxy-IP zur Rettung

Der Punkt ist! Ein Single-IP-Hochfrequenzzugang ist so, als würde man mitten in der Nacht ein Dutzend Mal durch die Nachbarschaft schleichen, damit die Wachleute kein Auge auf einen werfen. Zu diesem Zeitpunkt ist es notwendigipipgovon Vertretungsdiensten zu vertuschen.

Hier ist das umgestaltete Skript:


erfordern 'nokogiri'
erfordern 'open-uri'

proxy_list = [
  'http://username:password@gateway.ipipgo.com:8080',
  'http://username:password@gateway.ipipgo.com:8081'
]

5.times do |i|
  beginnen
    html = URI.open('https://target-site.com',
      :proxy => proxy_list.sample, 'Benutzer-Agent' => 'Mozilla/5.0 (Windows NT 10.0)
      'Benutzer-Agent' => 'Mozilla/5.0 (Windows NT 10.0)'
    ).read

     Der Parsing-Code ist derselbe wie oben
    Rettung => e
  Rettung => e
    puts "{i+1}ter Versuch fehlgeschlagen: {e.message}"
  end
end

Es wird hier verwendetipipgoEs werden mehrere Exit-IPs bereitgestellt, von denen jedes Mal eine zufällig ausgewählt wird. Es ist wie ein Guerillakrieg, bei dem man einen Schuss abgibt und dann die Plätze wechselt.

Praktischer Leitfaden zur Vermeidung der Grube

Nennen Sie ein paar häufige Fallouts für Neulinge:

Ausgaben Verschreibung
SSL-Zertifikatsfehler ssl_verify_mode: OpenSSL::SSL::VERIFY_NONE zur Anfrage hinzufügen
Zeitüberschreitung beim Laden Setzen Sie den Parameter read_timeout, empfohlen werden 10-30 Sekunden.
Versiegeln Sie den User-Agent. Generierung zufälliger Browser-Fingerabdrücke mit dem Faker-Gem

Sie können fragen.

F: Kann der freie Mitarbeiter nicht eingesetzt werden?
A: Freie Agenten sind wie öffentliche Toiletten, jeder kann sie benutzen, aber sie können leicht blockiert werden. Kommerzielle Szenarien werden immer noch empfohlenipipgoDieser professionelle Dienst mit einem großen IP-Pool ist ebenfalls stabil.

F: Was sollte ich tun, wenn mein Agent langsam ist?
A: Wählen Sie einen Knoten in der Nähe der geografischen Lage, wie das Klettern der inländischen Website mit dem Ost-China-Server-Raum. ipipgo Hintergrund kann selbst gewählten Export-Bereich, ist dieser Punkt sehr bequem.

F: Wie kann ich feststellen, ob eine Vollmacht in Kraft ist?
A: Ein Skript hinzufügensetzt html[0..100]Exportieren Sie den Anfang der Webseite und prüfen Sie, ob der Inhalt korrekt ist. Oder verwenden Sie eine Website eines Drittanbieters, um die Export-IP zu überprüfen.

Upgrade-Spiel

Was macht man mit dynamisch geladenen Daten? Sie können mit demselenium-webdriverum die Proxy-Einstellungen gründlicher zu machen:


erfordern 'selenium-webdriver'

Optionen = Selenium::WebDriver::Chrome::Optionen.new
options.add_argument('--proxy-server=http://gateway.ipipgo.com:8080')

Treiber = Selenium::WebDriver.for :chrome, Optionen: Optionen
driver.navigate.to "https://target-site.com"

Auf diese Weise können sogar JS gerenderte Seiten erfasst werden, was dem Crawler entspricht, der ein Teleskop installiert hat.

Schließlich ist die Verwendung einer Proxy-IP wie das Anlegen eines Sicherheitsgurtes im Auto, der in der Regel lästig ist, aber in kritischen Momenten Ihr Leben retten kann. Vor allem bei kommerziellen Crawlern sollte man nicht an diesem Budget sparen.ipipgovon neuen Nutzern haben Probepakete, die viel weniger kosten, um in die Bresche zu springen.

Dieser Artikel wurde ursprünglich von ipipgo veröffentlicht oder zusammengestellt.https://www.ipipgo.com/de/ipdaili/33205.html

Geschäftsszenario

Entdecken Sie weitere professionelle Dienstleistungslösungen

💡 Klicken Sie auf die Schaltfläche für weitere Einzelheiten zu den professionellen Dienstleistungen

Professioneller ausländischer Proxy-IP-Dienstleister-IPIPGO

Schreibe einen Kommentar

Deine E-Mail-Adresse wird nicht veröffentlicht. Erforderliche Felder sind mit * markiert

Kontakt

Kontakt

13260757327

Online-Anfrage. QQ-Chat

E-Mail: hai.liu@xiaoxitech.com

Arbeitszeiten: Montag bis Freitag, 9:30-18:30 Uhr, Feiertage frei
WeChat folgen
Folgen Sie uns auf WeChat

Folgen Sie uns auf WeChat

Zurück zum Anfang
de_DEDeutsch