
La Soupe à l'eau pour voler des données
Récemment, beaucoup de petits partenaires m'ont demandé, avec Python pickpocket site est toujours anti-escalade pour faire l'effondrement de l'esprit comment faire ? Aujourd'hui, nous allons nag comment utiliser Beautiful Soup cet outil avec proxy IP, de sorte que pickpocket données cette question devient facile et fiable.
Pourquoi utiliser une IP proxy pour récupérer des données ?
Par exemple, si vous êtes accroupi dans un cybercafé et que vous jouez toute la nuit, et que le patron voit que vous jouez trop et retire directement le câble Internet, vous pouvez continuer à vous défoncer si vous changez de place. L'IP proxy est la raison pour laquelle, lorsque le site constate que vous demandez trop souvent, changer l'adresse IP peut continuer à fonctionner.
Nous le recommandons.ipipgoDes services d'agence spécialisés dans la résolution de ces problèmes :
1. changement massif de pool IP à tout moment
2. taux de réussite des demandes stable à 99%+.
3. prise en charge du protocole HTTP/HTTPS/SOCKS5
En particulier pour le suivi des prix du commerce électronique, les projets qui nécessitent une saisie à long terme, le recours à leurs agents peut éviter bien des maux de tête.
Configuration de l'environnement de l'agent
Commencez par vous équiper de la boîte à outils essentielle :
pip install beautifulsoup4 requests
Il y a un petit piège à éviter ici : de nombreux tutoriels n'enseignent pas comment définir un délai d'attente, nous devrons donc l'écrire de cette manière :
import requests
from bs4 import BeautifulSoup
proxies = {
'http' : 'http://username:password@gateway.ipipgo.com:9020',
'https' : 'http://username:password@gateway.ipipgo.com:9020'
}
try.
response = requests.get('destination URL', proxies=proxies, timeout=10)
soup = BeautifulSoup(response.text, 'html.parser')
except requests.exceptions.ProxyError as e :
print("Le proxy fait des siennes, vérifiez la configuration maintenant !")
Il est utilisé iciipipgoLe format d'authentification, n'oubliez pas de remplacer le mot de passe de votre compte. Il est recommandé que le délai d'attente ne soit pas inférieur à 8 secondes afin de laisser au serveur le temps de réagir.
Conseils pour l'analyse HTML
Ne paniquez pas lorsque vous rencontrez un contenu chargé dynamiquement, essayez ces conseils de positionnement :
Trouver les divs dont la classe contient "price".
soup.select('div[class=price]')
Récupère la troisième ligne du deuxième tableau
soup.find_all('table')[1].find_all('tr')[2]
Extraire les mots-clés des balises meta
soup.find('meta', {'name':'keywords'})['content']
Si vous êtes dans une situation où la structure de la page change fréquemment, il est recommandé d'utiliser l'optionipipgoLa fonction de rotation de l'IP est associée à un mécanisme de réessai :
essayer.
Ici, l'IP sera changée automatiquement
response = requests.get(url, proxies=proxies)
except : response = requests.get(url, proxies=proxies)
sauf : continue
continuer
Foire aux questions QA
Q : Que dois-je faire si le proxy IP ne fonctionne soudainement pas correctement ?
R : Vérifiez d'abord si le compte a expiré, puis utilisez la fonctionipipgoLes outils de détection d'IP en arrière-plan, parfois le site web cible bloque temporairement certains segments d'IP.
Q : Comment puis-je m'assurer que la procuration est en vigueur ?
R : Mettez un test dans le code :
print(requests.get('http://httpbin.org/ip', proxies=proxies).json())
Il est bon de voir que l'IP renvoyée n'est pas l'adresse locale.
Q : Que dois-je faire si je rencontre une erreur de certificat SSL ?
R : Ajoutez le paramètre verify=False à la demande de renseignements, ou contactez l'équipe d'assistance technique.ipipgoLe service clientèle est passé à leur certificat SSL.
Une version améliorée de l'astuce.
N'oubliez pas d'ajouter ces configurations si vous souhaitez fonctionner de manière constante 24 heures sur 24 :
Attente aléatoire de 1 à 3 secondes
import random
time.sleep(random.uniform(1,3))
Masquer l'identité du navigateur
headers = {
User-Agent' : 'Mozilla/5.0 (Windows NT 10.0) AppleWebKit/537.36...'
}
s'adapteripipgoLe forfait de facturation basé sur le volume et l'exploration distribuée permettent d'économiser beaucoup d'argent. Leur API permet également d'obtenir une liste d'adresses IP disponibles en temps réel, ce qui est particulièrement adapté aux scénarios qui nécessitent une forte concurrence.
Enfin, bien que l'utilisation de l'IP proxy soit possible, il ne faut pas glaner les données des sites web jusqu'à ce que mort s'ensuive. Contrôlez la fréquence des requêtes et soyez un ingénieur crawler éthique, afin que notre activité de crawler soit durable~.

