
Praktische Übungen zur Verwendung von BS4 zum Abgreifen von Daten ohne Sperrung der Nummer
Was befürchten Sie am meisten, wenn Sie Crawling tun, IP blockiert ist definitiv in den Top drei! Heute wollen wir uns ansehen, wie man Beautifulsoup4 (später BS4 genannt) verwendet, um Daten mit demipipgoDer Proxy-Dienst Ihres Hauses dient dazu, Ihre IP zu behalten. Lassen Sie den ganzen Unsinn, kommen Sie einfach auf den Punkt.
Vermeiden Sie Schlaglöcher, indem Sie die Umwelt vorbereiten
Installieren Sie zuerst diese wichtigen Bibliotheken:
pip install beautifulsoup4 fordert fake-user-agent
Achten Sie darauf, dass Sie nicht zu alte Versionen von Requests verwenden, es wird empfohlen, 2.28 oder höher zu verwenden. Wenn Sie auf Installationsfehler stoßen, versuchen Sie, die Tsinghua-Spiegelquelle hinzuzufügen:
pip install -i https://pypi.tuna.tsinghua.edu.cn/simple Paketname
Ein Crashkurs in der grundlegenden Verwendung von BS4
Nennen Sie ein Beispiel für die Erfassung von Preisen im elektronischen Handel:
von bs4 importieren BeautifulSoup
importiere Anfragen
headers = {'User-Agent': 'Mozilla/5.0 (Windows NT 10.0) AppleWebKit/537.36'}
url = 'http://example.com/product'
response = requests.get(url, headers=headers)
soup = BeautifulSoup(response.text, 'lxml')
price = soup.select_one('.product-price').text.strip()
Hier gibt es drei wichtige Punkte:
- Benutzer-Agent MaskeradeEs muss getan werden. Gerade auf die nackten Knochen wird blockiert.
- Für den Parser wird die Verwendung von lxml empfohlen, das dreimal schneller ist als html.parser
- select_one ist besser als find und unterstützt die CSS-Selektorsyntax.
Proxy-IP-Zugang in der realen Welt
Einzelne IP harte Abneigung ist früher oder später beendet, hier ist, wie Sie zu lehren, wie es zu nehmenipipgodes Agentenpools:
proxies = {
'http': 'http://用户名:密码@gateway.ipipgo.com:9020',
'https': 'http://用户名:密码@gateway.ipipgo.com:9020'
}
try.
response = requests.get(url, headers=headers, proxies=proxies, timeout=8)
except requests.exceptions.ProxyError:
print("Proxy-Ausnahme, automatische Umschaltung auf eine neue IP...")
Hier können Sie auf die API von ipipgo zugreifen, um die IP automatisch zu ändern.
Hinweis bei Verwendung des exklusiven Proxys von ipipgo:
| Parameter | Beispielwert |
|---|---|
| Server-Adresse | gateway.ipipgo.com |
| Hafenbereich | 9020-9030 |
| Verfahren zur Authentifizierung | Benutzername + Passwort |
Ein Leitfaden zur Vermeidung von Fallstricken bei realen Projekten
Diese Lektion habe ich kürzlich gelernt, als ich einem Kunden half, eine bestimmte Preisvergleichsseite zu finden:
- Schlafen Sie nach dem Zufallsprinzip 1-3 Sekunden pro Anfrage, verwenden Sie kein festes Intervall.
- Sofortiger Wechsel zu einem neuen Knoten in ipipgo, wenn ein Captcha gefunden wird
- Wichtige Daten werden zweimal mit xpath überprüft, um Änderungen in der Seitenstruktur zu verhindern.
Häufig gestellte Fragen QA
F: Was sollte ich tun, wenn die Proxy-IP plötzlich nicht mehr verfügbar ist?
A:Überprüfen Sie den Fehlertyp im "Verbindungsprotokoll" im Hintergrund von ipipgo. Wenn der Fehler 407 lautet, bedeutet dies, dass die Authentifizierungsinformationen falsch sind, und wenn er 403 lautet, wird empfohlen, den Rechenzentrumsknoten zu wechseln.
F: Wie kann ich für langsames Crawling optimieren?
A: Legen Sie die mehreren Proxy-IPs von ipipgo in die Warteschlange und verwenden Sie asynchrone Anfragebibliotheken (wie aiohttp), um sie gleichzeitig zu verarbeiten, was die Geschwindigkeit um das 5-8-fache erhöhen soll.
F: Was sollte ich tun, wenn ich auf den Schutz von Cloudflare stoße?
A: Diese Situation braucht: 1. ersetzen Sie die hohe Stash-Proxy 2. fügen Sie den Browser Fingerprint Header 3. gehen ipipgo's Übersee Wohn-IP-Pool. Drei Striche können im Grunde brechen.
Zum Schluss noch ein Rat: Versuchen Sie nicht, mit kostenlosen Agenten billig zu sein, leicht ist es, Daten zu verlieren, schwer ist es, gegen das Klettern zu markieren. Obwohl es Geld kostet, ipipgo's Enterprise-Level-Proxy zu verwenden, ist es besser als die anderen.Hohe Erfolgsquote der AnträgeundIP-Pools werden schnell aktualisiertEs eignet sich besonders für Szenarien, in denen über einen langen Zeitraum hinweg kontinuierlich Daten übertragen werden müssen. Neue Nutzer sollten sich daran erinnern, dass sie einen 3G-Erfahrungsdatenverkehr erhalten, der zum Testen ausreicht.

