Prefacio
En nuestro trabajo diario, a veces necesitamos rastrear los datos en el sitio web, pero el mecanismo anti-rastreo de algunos sitios web determinará si estamos abriendo el navegador usando webdriver. Una vez que se determina que estamos abriendo el navegador usando webdriver, si Si esto sucede, no podremos capturar los datos que queremos o no podremos usar el navegador abierto por webdriver para iniciar sesión en el sitio web en el que queremos iniciar sesión, pero dramaturgo nos proporciona una manera de configurarlo. y escapar de este Un mecanismo anti-rastreo.
window.navigator.webdriver
Atributos
En la mayoría de los casos, los sitios web usan este atributo para determinar si usamos webdriver
para abrir el navegador. Si abrimos el navegador manualmente, entonces el atributo es false
, como se muestra a continuación:
Pero el navegador abierto con webdriver se mostrará como true
se muestra a continuación:
Normalmente, sólo necesitamos poder webdriver
modificar las propiedades del navegador abierto false
para evitar esta detección anti-rastreo.
Configurar usando Playwrightwindow.navigator.webdriver
Introduzcamos cómo configurar window.navigator.webdriver
esta propiedad. Supongamos que queremos visitar un sitio web. El código es el siguiente:
import asyncio
from playwright.async_api import async_playwright
async def set_navigator_property():
async with async_playwright() as p:
browser = await p.chromium.launch()
page = await browser.new_page()
# 设置 window.navigator.webdriver 属性为 false
await page.evaluate('''() => {
Object.defineProperty(navigator, 'webdriver', {
get: () => false
});
}''')
await page.goto('https://example.com') # 替换为目标网站的 URL
await asyncio.sleep(10) # 这里可以等待页面加载完毕后再继续操作
# 在此处可以执行你的爬取操作
await browser.close()
if __name__ == "__main__":
asyncio.run(set_navigator_property())
En este ejemplo, primero importamos Playwright
y luego usamos async_playwright
para crear una instancia de navegador. En la página del navegador, utilizamos page.evaluate
el método para establecer window.navigator.webdrive
el atributo r en false
. A continuación, page.goto
abrimos el sitio web de destino mediante el método y realizamos nuestra operación de rastreo después de cargar la página.
Nota: Establecer window.navigator.webdriver
el atributo en falso puede evitar la detección antirastreo de algunos sitios web, pero no todos los sitios web dependerán de este atributo para detectar programas automatizados.
Resumir
Playwright es una poderosa herramienta que puede ayudarlo a evitar la detección anti-rastreo de sitios web y realizar operaciones automatizadas de rastreo de sitios web. Pero asegúrese de usarlo con precaución y cumplir con las leyes y regulaciones del sitio web.