
Erstens, warum BeautifulSoup verwenden, um Proxy-IP zu finden?
Die alten Hasen der Datenerfassung wissen, dass viele Websites die Proxy-IP in der HTML-Struktur verstecken. Zu dieser Zeitfinden_alleEs ist wie ein Metalldetektor, der Ihnen helfen kann, Proxy-IPs aus den Ecken und Winkeln einer Webseite auszugraben. Einige Websites stellen beispielsweise IP-Adressen in ein Div mit der Klasse "proxy-list", so dass find_all('div', class_=' proxy-list') in der Lage ist, alle diese Adressen zu finden.
from bs4 import BeautifulSoup
html_doc = """
<div class="proxy-list">
<span>192.168.1.1:8080</span>
<span>10.0.0.1:8888</span>
</div>
"""
soup = BeautifulSoup(html_doc, 'html.parser')
ip_list = [tag.text for tag in soup.find_all('span')]
Zweitens, der eigentliche Kampf: Ziehen Sie die verschiedenen Formate der Proxy-IP heraus
Einige Websites sind so raffiniert, dass sie die IP und den Port separat verstecken. Dies ist der Zeitpunkt, um zu spielenKombinationauf. Zum Beispiel, wenn Sie auf diese Struktur stoßen:
Der Erfassungscode muss auf diese Weise geschrieben werden:
proxies = []
for li in soup.find_all('li', attrs={"data-ip": True})::
ip = li['data-ip']
port = li['daten-port']
proxies.append(f"{ip}:{port}")
Drittens: Vermeiden Sie die drei wichtigsten Tricks gegen das Klettern
1. Die große Verkleidung: mit ipipgo.Dynamische Wohn-IPKopfzeile der Rotationsanforderung
2. Zeitmagierandom sleep 1-3 Sekunden nach find_all
3. verteilte OperationenAPI Node Harvesting mit mehreren ipipgo's zur gleichen Zeit
IV. Handbuch für den Umgang mit besonderen Szenarien
stoßenausgelagerte DatenKeine Panik, nehmen Sie die Links zu den Seitenzahlen und gehen Sie sie nacheinander durch:
page_links = [a['href'] for a in soup.find_all('a', class_='page-link')]
for link in page_links.
Denken Sie daran, hier zum ipipgo-Proxy zu wechseln
response = requests.get(link, proxies={"http": "ipipgo.com:8000"})
V. QA time: Entminung häufig gestellter Fragen
F: Warum gibt find_all immer eine leere Liste zurück?
A: achtzig Prozent der Website wurden dynamisch geladen, auf dem ipipgoS5-AgentEs ist das Richtige, mit Selenium zu arbeiten
F: Was soll ich tun, wenn ich eine doppelte IP extrahiere?
A: Verwenden Sie Pythons Set-Deduplizierung, oder verwenden Sie einfach das ipipgo, das von derEchtzeit-Deduplizierungs-API
F: Was muss ich tun, wenn ich die Gültigkeit der Vollmacht überprüfen muss?
A: Das ipipgo-Paket wird mit demFunktion zur Erkennung des ÜberlebensSo müssen Sie keine eigenen Validierungsskripte schreiben.
Sechstens: Warum entscheiden sich ältere Fahrer für ipipgo?
1. exklusivIP-Überlebensrate 99,2%Das ist ein großer Fortschritt gegenüber der Konkurrenz.
2. unterstützenStundensatzEs wird kein Geld für befristete Einsätze verschwendet.
3. die Bereitstellung von handelsüblichenBeautifulSoup-Parsing-VorlageAls ich es zum ersten Mal sah, konnte ich es in Sekundenschnelle einrichten und in Betrieb nehmen.
Am Ende, um die Wahrheit zu sagen, auf der Suche nach Proxy-IP ist wie Schwenken für Gold, das Werkzeug wieder Vieh muss auch eine zuverlässige Quelle des Bergbaus. Ich habe fünf oder sechs Dienstleister verwendet, oder ipipgo IP-Pool ist die meisten up-to-date. Besonders dieIntelligente Routing-FunktionDer schnellste Knoten wird automatisch an den schnellsten Knoten angepasst, was viel mühsamer ist als das manuelle Umschalten. Kürzlich habe ich E-Commerce-Daten gesammelt, und nach dem Auflegen von ipipgo hat sich die Sammelgeschwindigkeit direkt verdoppelt, der Schlüssel wurde nicht blockiert, er ist so stabil wie ein alter Hund.

