Seleen Python (3). Kuidas Pythoni abil seleeni tuvastamisest mööda minna: kasutajaagendid ja taustatäitmine
Õppige, kuidas eirrata automatiseeritud brauseri tuvastamist, kasutades Python-i, kasutaja agente ja tausta täitmist. Parandage oma veebi kraapimise ja automatiseerimise oskusi.
Veebi kraapimine ja brauseri automatiseerimine on muutunud paljude ettevõtete ja arendajate jaoks lahutamatuks osaks. Paljud veebisaidid tuvastavad ja blokeerivad aga nüüd automaatse sirvimise. Selles artiklis uuritakse, kuidas Pythoni abil seleeni tuvastamisest mööda minna, manipuleerides kasutajaagentidega ja käivitades seleeni taustal. Sukeldume üksikasjalikesse sammudesse, tööriistadesse ja parimatesse tavadesse, et tagada edukas veebikraapimine.
Selenium tuvastamise mõistmine#
Enne tuvastamise eiramisele asumist mõistame, kuidas see toimib. Veebisaidid saavad Selenium-i tuvastada, kontrollides teatud veebiajuri lipude ja omaduste olemasolu. Kui sait neid lippusid tuvastab, võib see juurdepääsu blokeerida või esitada eksitavaid andmeid. Näiteks kui avate saidi tavalise Chrome brauser abil, reageerib see ootuspäraselt. Kui aga avate sama saidi Selenium-i abil, saab veebisait automatiseeringut tuvastada ja blokeerida. See tuvastamine toimub, kuna Selenium määrab spetsiifilised lipud, mida veebisaidid saavad otsida.
WebDriveri lippude muutmine#
Seleeni tuvastamisest möödahiilimiseks on üks tõhus meetod WebDriveri lippude muutmine.
- Firefox Konfiguratsiooni: avage Firefoxi konfiguratsioonileht, tippides
about:configaadressiribas. Leidke WebDriver-iga seotud lipp ja määrake see väärtuselefalse. - Koodi Juurutamine:
from selenium import webdriver
# Set Firefox preferences
options = webdriver.FirefoxOptions()
options.set_preference("dom.webdriver.enabled", False)
options.set_preference('useAutomationExtension', False)
driver = webdriver.Firefox(options=options)
See skript keelab WebDriver tuvastamise lipu, muutes brauser tavaliseks kasutaja juhitavaks instantsiks.
Kasutajaagendid#
Kasutaja agent on string, mille brauser saadab veebiserverile end identifitseerimiseks. Kasutaja agendi stringi muutmine võib muuta Selenium päringud eristamatuks tavalistest brauser päringutelt.
Sammud kasutajaagenni muutmiseks:
- Tuvastage levinud kasutajaagendi string: Näide:
"Mozilla/5.0 (Windows NT 10.0; Win64; x64) AppleWebKit/537.36 (KHTML, like Gecko) Chrome/91.0.4472.124 Safari/537.36" - Muudatuse rakendamine Seleniumi abil:
from selenium import webdriver
options = webdriver.ChromeOptions()
options.add_argument("user-agent=Mozilla/5.0 (Windows NT 10.0; Win64; x64) AppleWebKit/537.36 (KHTML, like Gecko) Chrome/91.0.4472.124 Safari/537.36")
driver = webdriver.Chrome(options=options)
Kohandatud kasutajaagendi seadistamisega saame paljudest põhituvastustest mööda minna.
Seleniumi käitamine taustaprogrammina#
Brauseri käitamine taustaprogrammina on teine oluline tuvastamise möödaviimise aspekt. Selle saab saavutada, käitades brauserit headless-režiimis.
Juurutamine:
from selenium import webdriver
options = webdriver.ChromeOptions()
options.add_argument("--headless")
driver = webdriver.Chrome(options=options)
Headless-režiimis käitamine tähendab, et graafiline kasutajaliides kuvatakse, mis on oluline automatiseeritud ülesannete käitamiseks serverites.
Brauseri teatiste ja helide keelamine#
Automatiseeritud sirvamine hõlmab sageli ootamatute hüpikaknate ja teatiste käsitlemist. Nende keelamine võib protsessi sujuvamaks teha.
Koodinäide:
from selenium import webdriver
options = webdriver.ChromeOptions()
prefs = {"profile.default_content_setting_values.notifications": 2}
options.add_experimental_option("prefs", prefs)
options.add_argument("--mute-audio")
driver = webdriver.Chrome(options=options)
See skript keelab teatised ja summutab helikäiku, tagades katkematutu automatiseerimise.
Andmete jäljitamise näide#
Vaatleme andmete jäljitamise praktilist näidet, mis pärineeb saidilt, kus genereeritakse juhuslikke kasutajanime.
Sammud:
- Laadige sait ja interakteeruge elementidega:
from selenium import webdriver
from selenium.webdriver.common.by import By
from selenium.webdriver.common.keys import Keys
options = webdriver.ChromeOptions()
options.add_argument("--headless")
options.add_argument("user-agent=Mozilla/5.0 (Windows NT 10.0; Win64; x64) AppleWebKit/537.36 (KHTML, like Gecko) Chrome/91.0.4472.124 Safari/537.36")
driver = webdriver.Chrome(options=options)
driver.get("https://example.com")
# Locate the username field and extract nicknames
usernames = []
for _ in range(10):
nickname = driver.find_element(By.ID, "nickname").text
usernames.append(nickname)
driver.find_element(By.ID, "generate").click()
print(usernames)
Kokkuvõte#
WebDriveri lippe manipuleerides, kasutajaagente muutes, taustal Seleniumi käitades ja brauseri märguandeid keelates saate seleeni tuvastamisest tõhusalt mööda minna. Need tehnikad on olulised sujuvaks ja avastamatuks veebikraapimiseks ja automatiseerimiseks. Nende meetodite rakendamine tagab, et teie automatiseeritud toimingud jäävad katkematuks ja tõhusaks. Ärge unustage kasutada veebi kraapimist ja automatiseerimist alati eetiliselt, järgides veebisaidi teenusetingimusi ja andmekaitseseadusi. Täiustatud tehnikate ja regulaarsete värskenduste saamiseks jälgige meie ajaveebi saidil FineProxy.org. Jagage julgelt oma ideid ja tagasisidet allolevates kommentaarides. Kui teile see artikkel meeldis, ärge unustage tellida meie kanalit ja jätta meeldimine. Head kraapimist!
Neid sammude rakendamisega ja vajadusel seadete muutmisega saate tagada, et teie automatiseerimisprojektid töötaksid sujuvalt ja märkamatult.