Praktische Übungen zur Verwendung von BeautifulSoup für das Crawling im Internet
Vor kurzem fragte eine Menge von kleinen Partnern statische Webseite Erwerb, heute werden wir den Volksmund nörgeln diese verwenden. Zunächst einmal, um ehrlich zu sein, jetzt die Website Anti-Climbing-Mechanismus wird immer mehr und mehr strenge, direkte Abneigung des Servers ist einfach zu IP blockiert werden, dieses Mal müssen wir die Proxy-IP zu spielen mit. Sagen wir, unser Partner ipipgo, seine Familie ist spezialisiert auf diese, später wird sagen, wie zu verwenden.
Drei Achsen für statisches Web-Crawling
Web-Harvesting ist ein Prozess, der in drei Schritten abläuft:
1. einen Antrag stellenAbfrage von Daten aus der Anforderungsbibliothek.
2. schlanke StrukturTaking BeautifulSoup and disassembling the page
3. Datenspeicherung: Speichern Sie, was Sie brauchen
Anfragen importieren
von bs4 importieren BeautifulSoup
url = 'https://example.com'
response = requests.get(url)
soup = BeautifulSoup(response.text, 'html.parser')
titles = soup.find_all('h2')
for title in titles.
titles = soup.find_all('h2') for title in titles: print(title.text)
Warum Proxy-IPs ein Muss sind
Jetzt ist die Website sehr gut, die gleiche IP häufige Besuche geben Sie sofort schwarz. Dieses Mal müssen Sie einen Proxy-IP zu verwendenlit. rotierende Weste. Nehmen Sie ipipgo, seine Familie hat diese:
Dominanz | Anweisungen |
---|---|
Massiver IP-Pool | Dynamische IP in über 300 Städten landesweit |
Intelligente Umschaltung | Automatische Erkennung von ungültigen IPs |
Flexibilität bei der Authentifizierung | Unterstützt sowohl Benutzernamen und Passwort als auch Whitelisting |
Beispiele aus der Praxis: Erfassungsskripte mit Proxys
Der folgende Code zeigt, wie der Proxy-Dienst von ipipgo verwendet wird, beachten Sie den Abschnitt Proxy-Einstellungen:
Anfragen importieren
von bs4 importieren BeautifulSoup
proxies = {
'http': 'http://username:password@gateway.ipipgo.com:9020',
'https': 'http://username:password@gateway.ipipgo.com:9020'
}
try.
response = requests.get('https://target-site.com',
proxies=proxies,
timeout=10)
soup = BeautifulSoup(response.text, 'lxml')
Schreiben Sie hier Ihre Parsing-Logik...
except Exception as e.
print(f "Fehler beim Erfassen: {str(e)}")
Zentrum::
1. gehen Sie auf die ipipgo-Website, um die Proxy-Adresse zu erhalten.
(2) Es wird eine Auszeit von 10-15 Sekunden empfohlen.
3) Denken Sie daran, Ausnahmen zu behandeln, damit das Programm nicht einfach abstürzt.
Häufige Fallstricke für QA-Neulinge
F: Warum ist die Website auch nach der Verwendung eines Proxys noch gesperrt?
A: Es können drei Szenarien auftreten:
1. schlechte IP-Qualität (die dedizierte IP von ipipgo wird empfohlen)
2. zu häufige Anfragen (Hinzufügen einer zufälligen Wartezeit)
3. die Kopfzeile der Anfrage ist nicht gut getarnt (denken Sie daran, den User-Agent mitzubringen)
Q:Was sollte ich tun, wenn die Proxy-IP plötzlich keine Verbindung mehr herstellt?
A: ipipgo's Hintergrund wird automatisch die verfügbaren Nodes wechseln, wenn Sie Ihre eigenen bauen, dann müssen Sie einen Erkennungsmechanismus schreiben, gefunden, dass die Zeitüberschreitung automatisch die IP ändert.
F: Was sollte ich tun, wenn die erfassten Daten verstümmelt sind?
A: Fügen Sie response.encoding = 'utf-8' in Anfragen ein, oder verwenden Sie die Chardet-Bibliothek, um die Kodierung automatisch zu erkennen.
Upgrade-Spiel-Tipps
1. zufälliger Benutzer-Agent: eine Liste für die Rotation vorbereiten
2. verteilte Erfassung: mehrere Proxy-IPs arbeiten gleichzeitig
3. abnormale Wiederholungsversuche: automatischer Ruhezustand, wenn ein Statuscode 429 festgestellt wird
4) Fingerabdruck-Tarnung: fortgeschrittene Anti-Backtracking-Funktion mit Selenium+Proxy
Schließlich, um ein Herz zu sagen, ist die Sammlung von Web-Seiten eine Frage des Kampfes mit dem Anti-Climbing-System. Verwenden Sie eine gute ipipgo wie ein zuverlässiger Proxy-Dienstleister, kann mindestens die Hälfte der Zeit zu werfen zu speichern. Er hat ein kostenloses Testguthaben für neue Benutzer, können Sie auf der offiziellen Website gehen, um einen Blick auf die Besonderheiten zu nehmen, hier wird nicht mehr werben.