IPIPGO proxy ip Ruby Web Crawling : Exemple de Nokogiri Parsing HTML

Ruby Web Crawling : Exemple de Nokogiri Parsing HTML

Quand un crawler rencontre un CAPTCHA ? Essayez cette astuce Récemment, j'ai aidé mon ami à créer un script de surveillance des prix, et j'ai écrit un crawler en Ruby, mais le lendemain, j'ai eu un problème - le site web cible a bloqué notre IP. Ce n'est qu'à ce moment-là que je me suis souvenu de cette histoire d'IP proxy, un peu comme si je mangeais un hot pot et que je ne trouvais pas de sauce, alors j'ai essayé de trouver une solution entre-temps. Nokogi...

Ruby Web Crawling : Exemple de Nokogiri Parsing HTML

Quand les robots d'indexation rencontrent les CAPTCHA ? Essayez ceci.

Récemment, j'ai aidé mon ami à créer un script de surveillance des prix et j'ai écrit un crawler en Ruby, mais le lendemain, j'ai eu un problème : le site web cible a bloqué notre IP. Ce n'est qu'à ce moment-là que je me suis souvenu de cette histoire d'IP proxy, un peu comme si je mangeais un plat chaud et que je ne trouvais pas de sauce, et que je cherchais une solution sur le champ.

Comment fonctionne cette histoire de Nokogiri ?

Ne parlons pas des proxys, il faut comprendre les outils de base, Nokogiri est un analyseur HTML, facile à installer :

gem install nokogiri

Pour donner un exemple, si l'on veut saisir le prix des marchandises dans une page de commerce électronique, le code est probablement long comme ceci :


nécessite 'nokogiri'
nécessite 'open-uri'

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

prendre notesélecteur cssC'est comme essayer d'insérer une clé dans un engrenage, et un clic droit sur un élément dans Chrome Developer Tools et l'option Copy selector (Copier le sélecteur) vous épargnent beaucoup de travail.

Que faire si votre IP est bloquée ? Proxy IP à la rescousse

L'essentiel est là ! L'accès à haute fréquence par IP unique revient à se faufiler dans le quartier une douzaine de fois au milieu de la nuit pour que les agents de sécurité ne vous surveillent pas. À ce stade, il est nécessaire deipipgodes services de procuration pour se couvrir.

Voici le scénario remanié :


nécessite 'nokogiri'
nécessite 'open-uri'

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

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

     Le code d'analyse est le même que ci-dessus
    rescue => e
  rescue => e
    puts "Échec de {i+1}ème tentative : {e.message}"
  end
fin

Il est utilisé iciipipgoPlusieurs adresses IP de sortie sont fournies, l'une d'entre elles étant sélectionnée au hasard à chaque fois. C'est comme mener une guérilla, tirer un coup et changer de place.

Guide pratique pour éviter la fosse

Citez quelques conséquences courantes pour les débutants :

questions prescription
Erreur de certificat SSL Ajouter ssl_verify_mode : OpenSSL::SSL::VERIFY_NONE à la requête
Délai de chargement Définissez le paramètre read_timeout, 10 à 30 secondes étant recommandées.
Sceau User-Agent Générer des empreintes de navigateurs aléatoires avec la gemme Faker

Vous pouvez poser la question.

Q : L'agent libre ne peut-il pas être utilisé ?
R : Les agents libres sont comme les toilettes publiques, tout le monde peut les utiliser mais elles sont facilement obstruées. Les scénarios commerciaux sont toujours recommandésipipgoCe service professionnel, qui dispose d'une vaste réserve d'adresses IP, est également stable.

Q : Que dois-je faire si mon agent est lent ?
R : Choisir un nœud proche de la situation géographique, par exemple escalader le site web national avec la salle des serveurs de la Chine orientale.

Q : Comment puis-je savoir si une procuration est en vigueur ?
A : Ajouter un scriptmet html[0..100]Exportez le début de la page web et vérifiez si le contenu est correct. Vous pouvez également utiliser un site web tiers pour vérifier la propriété intellectuelle de l'exportation.

Mise à niveau du jeu

Que faire des données chargées dynamiquement ? Vous pouvez utiliser la fonctionselenium-webdriverpour rendre les paramètres du proxy plus complets :


nécessite 'selenium-webdriver'

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

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

De cette manière, même les pages rendues en JS peuvent être capturées, ce qui équivaut à l'installation d'un télescope par le crawler.

Enfin, l'utilisation d'une IP proxy est comme le port d'une ceinture de sécurité dans une voiture, qui est généralement gênante, mais qui peut vous sauver la vie dans des moments critiques. En particulier pour les crawlers commerciaux, n'économisez pas sur ce budget.ipipgodes nouveaux utilisateurs ont des formules d'essai qui coûtent beaucoup moins cher.

Cet article a été initialement publié ou compilé par ipipgo.https://www.ipipgo.com/fr/ipdaili/33205.html

scénario d'entreprise

Découvrez d'autres solutions de services professionnels

💡 Cliquez sur le bouton pour plus de détails sur les services professionnels

Vente de fin d'année de nouvelles IP dynamiques 10W+ pour les États-Unis

Fournisseur professionnel de services d'IP proxy étrangers-IPIPGO

Laisser un commentaire

Votre adresse e-mail ne sera pas publiée. Les champs obligatoires sont indiqués avec *

Nous contacter

Nous contacter

13260757327

Demande de renseignements en ligne. QQ chat

Courriel : hai.liu@xiaoxitech.com

Horaires de travail : du lundi au vendredi, de 9h30 à 18h30, jours fériés.
Suivre WeChat
Suivez-nous sur WeChat

Suivez-nous sur WeChat

Haut de page
fr_FRFrançais