
La manière concrète de découper des pages web dynamiques et de les comprendre
Les personnes engagées dans le crawling web savent que de nombreux sites apprennent maintenant à affiner le chargement des données avec l'astuce suivante. Avec les requêtes traditionnelles + la combinaison BeautifulSoup pour attraper, souvent attraper un solitaire - la page sur la ligne de cheveux des données ne sont pas. Cette fois-ci, il est nécessaire d'utiliser quelquespratiques malhonnêtesIl s'agit par exemple de laisser le noyau du navigateur allumé pour simuler les actions d'une personne réelle.
from selenium import webdriver
from bs4 import BeautifulSoup
driver = webdriver.Chrome()
driver.get('https://目标网站')
html = driver.page_source
soup = BeautifulSoup(html, 'lxml')
C'est ici que vous commencez votre spectacle...
Mais il est facile de se faire piéger par les sites web qui jouent de cette façon, et c'est alors que nous devons sortir notredispositif de sauvetage--Le service de proxy IP d'ipipgo. Leur pool d'adresses IP est suffisamment important pour que le site ne puisse pas savoir si vous êtes une personne ou une machine si vous changez d'armure à chaque requête.
Mettre une cape d'invisibilité sur un reptile
Voici une astuce pour configurer le crawler avec le service proxy d'ipipgo. Par exemple, si vous utilisez la bibliothèque requests, vous pouvez faire ceci :
demandes d'importation
proxies = {
'http' : 'http://用户名:密码@ipipgo proxies:port',
'https' : 'https://用户名:密码@ipipgo proxy:port'
}
response = requests.get('destination URL', proxies=proxies, timeout=10)
Les mandataires d'ipipgo sont les suivantsTrois paquetsEn option :
| Type d'emballage | Scénarios applicables |
|---|---|
| IP dynamique de courte durée | Service de commutation à haute fréquence |
| IP statique de longue durée | Identité fixe requise |
| forfait de numérotation mixte | Une demande hétérogène |
Recherche dynamique de pages (Dynamic Page Crawl)
Lorsque vous rencontrez le genre de site web que vous devez faire défiler pour le charger, vous devez utiliser un outil d'automatisation du navigateur en conjonction avec un proxy. Voici un exemple utilisant selenium :
from selenium.webdriver import ChromeOptions
options = ChromeOptions()
options.add_argument('--proxy-server=http://ipipgo代理地址:端口')
driver = webdriver.Chrome(options=options)
Le reste du processus est identique à la normale
N'oubliez pas de mettre le backend d'ipipgoIP sur liste blancheConfigurez-le de manière à ce que l'authentification ne bloque pas le proxy. Si vous obtenez un blocage par captcha, réduisez la fréquence des requêtes de manière appropriée, ou essayez de passer au package high stash d'ipipgo.
Foire aux questions QA
Q : Que dois-je faire si mon IP est toujours bloquée par des sites web ?
R : Utilisez le pool de proxy rotatif d'ipipgo pour changer d'IP de sortie à chaque demande. Leur pool d'IP est mis à jour tous les jours et passe automatiquement à une nouvelle IP lorsqu'il est fermé.
Q : Comment interrompre un site web qui nécessite une connexion ?
R : Il est recommandé d'utiliser l'IP statique à long terme d'ipipgo pour que la connexion ne soit pas interrompue. N'oubliez pas de définir la date d'expiration du cookie, ne laissez pas la session expirer.
Q : Les proxys gratuits fonctionnent-ils ?
R : Jamais ! Neuf proxys gratuits sur dix sont lents ou ont été piratés par le site web. Les proxys payants d'ipipgo ont été vérifiés au niveau de l'entreprise et sont beaucoup plus fiables.
Une dernière remarque : la capture dynamique de pages est un jeu du chat et de la souris. La clé est deSimulation de comportements réelsC'est une bonne idée d'utiliser un proxy de haute qualité. Avec le service proxy d'ipipgo, capturer des données revient à se promener dans son propre jardin, et vous pouvez le faire autant que vous le souhaitez. Ils ont récemment mis en place un nouveau package de numérotation mixte, le taux de réussite de la capture mesurée peut être de 98% ou plus, cela vaut la peine d'essayer.

