Conceptos básicos de Selenium 3: modificar las opciones iniciales de webdriver, como el encabezado y las cookies

Aunque ip puede usar un proxy, en el proceso de rastreo, la solicitud del navegador todavía es fácilmente reconocida por herramientas como waf, y es muy fácil de amurallar, así que cuando uso selenium, estaba pensando, ¿puedo enviar la solicitud como Use la solicitud para modificar el encabezado dinámicamente.

Permítanme comenzar con la conclusión. Después de consultar la información, se demostró que el selenio no admite la modificación dinámica de la solicitud de encabezado. Algunos bloggers también dieron algunas opiniones.

problema de github

pregunta de stackoverflow

Probablemente sea imposible de lograr y nadie lo ha visto. Pero también hay flexibilidad. Podemos configurar el encabezado antes de que selenium inicie webdriver, lo que puede resolver este problema hasta cierto punto. Además, también publiqué algunas soluciones de bloggers.

https://blog.csdn.net/u013948858/article/details/92614346

Las principales soluciones son las siguientes:

  1. Use otro controlador / biblioteca en lugar de selenium (esto depende de la biblioteca o paquete proporcionado por el campo de programación: python selenium-wire)
  2. Escriba complementos específicos del navegador (o busque complementos existentes) que le permitan agregar encabezados a la solicitud. (Parece que hay complementos: chrome y modificar los encabezados de firefox, pero hay requisitos para la versión del navegador)
  3. Utilice browsermob-proxy o algún otro proxy. (El agente es una buena idea)
  4. Se puede hacer usando un proxy como Fiddler. Fiddler también proporciona una versión solo de API del componente FiddlerCore, así como acceso programático a toda la configuración y datos del proxy, lo que le permite modificar los encabezados de la respuesta http. (Al igual que el tercer agente, básicamente lo mismo)

Los artículos relacionados sobre la modificación de la solicitud inicial webdriver.option () son los siguientes:

https://www.zhihu.com/question/35547395?sort=created

https://www.cnblogs.com/TTyb/p/6128323.html

https://www.cnblogs.com/yangjintao/p/10599868.html

Este artículo es más detallado:
https://blog.csdn.net/xc_zhou/article/details/82415870

Algunos ejemplos de bloques de código son los siguientes:

options = webdriver.ChromeOptions()

#设置浏览器header
options.add_argument('User-Agent=Mozilla/5.0 (Linux; U; Android 8.1.0; zh-cn; BLA-AL00 Build/HUAWEIBLA-AL00) AppleWebKit/537.36 (KHTML, like Gecko) Version/4.0 Chrome/57.0.2987.132 MQQBrowser/8.9 Mobile Safari/537.36')

#导入chromedriver路径
browser = webdriver.Chrome(executable_path = r'C:\xx\chromedriver.exe',chrome_options = options)

webdriver.ChromeOptions () también puede personalizar la información inicial, como las cookies, si se cargan imágenes y si se ejecutan visualmente. No solo se aplica a Chrome, aquí hay solo un ejemplo de Chrome.

Supongo que te gusta

Origin blog.csdn.net/u010472858/article/details/104289512
Recomendado
Clasificación