
Selenium trifft Proxy IP: So wird's gemacht
Jeder, der sich mit Automatisierungstests beschäftigt, weiß, dass Selenium wie ein Generalschlüssel ist. In letzter Zeit haben mich jedoch einige Leute gefragt, wie man Selenium verwenden, um Daten zu erfassen und immer verboten werden. Heute werden wir nag, wie Proxy-IP zu Selenium verwenden, um einen Mantel zu tragen, gepaart mit CSS-Positionierung des Meisterwerks, garantiert, um Ihr Skript so stabil wie der alte Hund zu machen.
Proxy-IP ist kein Satz von Kindern, Sie müssen ihn auf diese Weise verwenden
Zunächst einmal lassen Sie uns sagen, eine reale Sache: ein Freund, der E-Commerce mit seiner eigenen IP, um den Preis der Konkurrenten zu fangen tut, die Ergebnisse des dritten Tages erhielt einen Brief von den Anwälten. Zu diesem Zeitpunkt ist der Proxy-IP ein Lebensretter, aber viele Menschen konfigurieren die Methode ist einfach nicht richtig. Denken Sie daran, diese drei Punkte:
von selenium import webdriver
proxy = "112.95.23.206:8000"
Optionen = webdriver.ChromeOptions()
options.add_argument(f'--proxy-server={proxy}') Der Schlüssel liegt in dieser Zeile
Treiber = webdriver.Chrome(Optionen=Optionen)
Der wichtigste Punkt ist, dass ipipgo praktische Tipps: ihre dynamische Wohn-IP-Pool groß genug ist, wird empfohlen, dass jedes Mal, wenn Sie das Skript ausführen, um die neue IP zu ändern. nicht dumm sein, eine feste IP zu verwenden, ist es nicht anders als nackt laufen.
Der Joker der CSS-Positionierung
Haben Sie schon einmal gesehen, wie jemand Dutzende von Codezeilen mit XPath-Positionierung durcheinandergebracht hat? In der Tat ist die CSS-Positionierung profitabler. Um eine Kastanie zu geben, um den Preis für einen bestimmten Schatz Waren zu finden:
Konventionelle Schreibweise
price = driver.find_element_by_css_selector("span.price-now > em")
Anti-Ban-Erweiterung (mit Wiederholungsmechanismus)
from selenium.webdriver.support.ui import WebDriverWait
element = WebDriverWait(driver, 10).until(
lambda x: x.find_element_by_css_selector("div[class^='price'] > b")
)
Beachten Sie, dass sich die Klassendynamik ändertWenn Sie ^= oder = für den unscharfen Abgleich verwenden wollen, verwenden Sie ^= oder = für den unscharfen Abgleich. Verwenden Sie nicht den vollständigen Klassennamen, da Websites heutzutage gerne mit zufälligen Klassen herumspielen, um Crawler abzuhalten.
Praktischer Leitfaden zur Vermeidung der Grube
| symptomatisch | eine Angelegenheit regeln |
|---|---|
| Das Element ist nicht auffindbar. | Explizites Warten hinzufügen, nicht time.sleep verwenden |
| CAPTCHA ist aus dem Nichts aufgetaucht | Ändern Sie die statische IP-Adresse von ipipgo, um die Windkontrolle zu reduzieren |
| lädt im Schneckentempo | Überprüfen Sie die Proxy-Geschwindigkeit, ändern Sie das TK-Paket |
QA-Zeit
F: Proxy-IP verwendet oder blockiert?
A: Achtzig Prozent der IP-Qualität ist nicht. Empfohlene ipipgo dynamische Wohn (Enterprise Edition), mehr als 9 1G Fluss, kommt mit IP-Rotation Mechanismus, Pro-Messung der kontinuierlichen Betrieb 7 Tage ohne Motte.
F: Was ist besser, CSS-Positionierung oder XPath?
A: Die alltägliche Verwendung von CSS reicht aus, damit es funktioniert, aber wenn es um hierarchisch tiefe Elemente geht, ist die Achsenpositionierung mit XPath reibungsloser. Seien Sie jedoch vorsichtig bei Überarbeitungen der Website, eine regelmäßige Wartung des Locators ist die richtige Lösung.
F: Wie wähle ich mein ipipgo-Paket aus?
A: Einsteiger mit dynamischer Standardversion ($7,67/GB), Projekte auf Unternehmensebene direkt über die statische Wohn-IP ($35/Monat). Grenzüberschreitende Geschäfte müssen auf ihrer internationalen Standleitung sein, die Geschwindigkeit kann mehr als dreimal schneller sein.
Ich sage Ihnen, was mir durch den Kopf geht.
Ich habe zu viele Menschen gesehen, die auf die Qualität der IPs gesetzt haben. Ich habe zu viele Menschen fallen für die Qualität der IPs gesehen, und ich habe zu viele Menschen fallen für die Qualität der IPs gesehen, und ich habe zu viele Menschen fallen für die Qualität der IPs gesehen, und ich habe zu viele Menschen fallen für die Qualität der IPs gesehen, und ich habe zu viele Menschen fallen für die Qualität der IPs gesehen. Vor allem ihre 1v1 benutzerdefinierte Programm, tun Übersee Geschäft half eine Menge.
Denken Sie schließlich daran, ein angemessenes Abfrageintervall für automatisierte Tests festzulegen, damit Sie den Server nicht zum Absturz bringen. Proxy-IP + CSS-Positionierung ist nur ein Hilfsmittel.Die Einhaltung von robots.txt ist der richtige Weg!.

