
L'exploration du web avec Python !
Récemment, des amis ont demandé à Lao Zhang s'il voulait apprendre à ramper, mais s'il était toujours bloqué par l'adresse IP du site web, comment faire ? C'est comme si vous jouiez à un jeu et que vous vous faisiez toujours éjecter de la pièce. Aujourd'hui, nous allons parler de la façon d'utiliser Python pour crawler le web en langage clair, en nous concentrant sur la façon d'utiliser l'IP proxy, cette "cape d'invisibilité".
Préparez votre boîte à outils
Commençons par charger quelques éléments essentiels :
pip install requests beautifulsoup4
prendre noteN'utilisez pas la dernière version de la bibliothèque, car certaines versions plus récentes présentent des problèmes de compatibilité. Par exemple, les requêtes sont plus stables avec la version 2.25.1.
Premier extrait de code scratch pour les débutants
Commençons par un exemple simple, celui de la saisie du prix d'un site de commerce électronique :
import requests
from bs4 import BeautifulSoup
url = 'https://example.com/product'
response = requests.get(url)
soup = BeautifulSoup(response.text, 'html.parser')
price = soup.find('span', class_='price').text
print(f "Prix actuel : {prix}")
Se faire bloquer deux fois pour cela, c'est la même chose que d'être surveillé par des agents de sécurité au supermarché pour avoir feuilleté à plusieurs reprises les étiquettes de prix.
La bonne façon d'ouvrir un proxy IP
C'est là que nous sortons notre "cape d'invisibilité" - le service proxy d'ipipgo. Il offreUtilisation exclusive des lignes à grande vitesseIl est beaucoup plus robuste que les procurations publiques. C'est exactement comme cela que cela fonctionne :
proxies = {
'http' : 'http://用户名:密码@gateway.ipipgo.com:端口',
'https' : 'https://用户名:密码@gateway.ipipgo.com:端口'
}
response = requests.get(url, proxies=proxies, timeout=10)
Attention à changer le nom d'utilisateur et le mot de passe avec les identifiants que vous avez obtenu dans le backend d'ipipgo, ne copiez pas ce code directement de moi !
Conseils essentiels pour les grappilleurs
1. Stratégie de rotation de la propriété intellectuelleL'adresse IP de ipipgo peut être obtenue dynamiquement en utilisant l'API ipipgo.
import random
def get_proxy() : proxy_list = ipipgo.get_proxy_list()
proxy_list = ipipgo.get_proxy_list() Ceci est un appel à l'API ipipgo.
return random.choice(proxy_list)
2. l'en-tête de la requête se fait passer pour: : mettre le "maquillage" sur la demande.
headers = {
'Accept-Language' : 'zh-CN,zh;q=0.9'
}
Questions fréquemment posées Trousse de premiers secours
Q : Que dois-je faire si j'obtiens toujours un délai de connexion ?
R : 80 % de l'agent n'est pas stable, changez de ligne exclusive ipipgo, essayez, n'utilisez pas d'agent libre !
Q : Les données renvoyées sont brouillées ?
R : N'oubliez pas de définir response.encoding = 'utf-8', ou d'utiliser la bibliothèque chardet pour détecter automatiquement l'encodage
Q : Comment puis-je savoir si mon IP est bloquée ?
R : Vérifiez si le code d'état de retour est 403, ou si le contenu de la page web apparaît dans la rubrique "visite trop fréquente", comme les invites.
Guide pour éviter la fosse
1) Ne pas utiliser time.sleep(1) pour fixer l'intervalle, utiliser random.uniform(1,3) à la place.
2) Ne vous battez pas avec CAPTCHA, utilisez ipipgo.IP à forte valeur ajoutéeLes emballages réduisent les risques de déclenchement
3. n'oubliez pas de mettre en cache les données importantes localement, ne les récupérez pas à chaque fois.
Enfin, je voudrais dire quelques mots du fond du cœur : choisir un service proxy, c'est comme trouver un partenaire, si vous utilisez un proxy gratuit pour pas cher, vous aurez des problèmes tôt ou tard. ipipgo Je l'utilise depuis une demi-année, et je l'utilise depuis longtemps.La stabilité peut vraiment frapperEn particulier, le forfait "pay-as-you-go" est particulièrement adapté aux petits projets. Il est conseillé aux débutants de s'entraîner d'abord avec leur formule d'expérience et de se familiariser avec elle avant de passer au trafic plus important.

