with soup scraping info how examples espaƱol businesses beautiful and python selenium selenium-webdriver phantomjs ghostdriver

python - soup - Cabeceras personalizadas en Phantomjs Selenium WebDriver



web scraping python examples (2)

Según this , ahora es posible modificar los encabezados. Cajeros automáticos necesito modificar Accept-Language en PhantomJS webdriver. Este código no funciona

DesiredCapabilities.PHANTOMJS[''phantomjs.page.customHeaders.Accept-Language''] = ''ru-RU'' driver = webdriver.PhantomJS()

¿Es posible configurar Phantomjs para enviar mi encabezado? no me importa dónde: dentro de ghostdriver, phantomjs o phantomjs-webdriver.


Escribo un ejemplo completo para configurar todos los encabezados, tamaño de ventana y proxy en selenium phantomjs:

from selenium import webdriver def init_phantomjs_driver(*args, **kwargs): headers = { ''Accept'':''text/html,application/xhtml+xml,application/xml;q=0.9,*/*;q=0.8'', ''Accept-Language'':''zh-CN,zh;q=0.8,en-US;q=0.5,en;q=0.3'', ''User-Agent'': ''Mozilla/5.0 (Windows NT 6.2; WOW64; rv:47.0) Gecko/20100101 Firefox/47.0'', ''Connection'': ''keep-alive'' } for key, value in headers.iteritems(): webdriver.DesiredCapabilities.PHANTOMJS[''phantomjs.page.customHeaders.{}''.format(key)] = value webdriver.DesiredCapabilities.PHANTOMJS[''phantomjs.page.settings.userAgent''] = ''Mozilla/5.0 (X11; Linux x86_64) AppleWebKit/537.36 (KHTML, like Gecko) Chrome/48.0.2564.116 Safari/537.36'' driver = webdriver.PhantomJS(*args, **kwargs) driver.set_window_size(1400,1000) return driver def main(): service_args = [ ''--proxy=127.0.0.1:9999'', ''--proxy-type=http'', ''--ignore-ssl-errors=true'' ] driver = init_phantomjs_driver(service_args=service_args) driver.get(''http://cn.bing.com'')

Nota:

userAgent se establece en phantomjs.page.settings.userAgent en lugar de phantomjs.page.customHeaders


La última versión ( 1.9.1 ) de PhantomJS es la versión del 5 de junio de 2013. La solicitud de extracción se fusionó el Jun/23/2013 .

Si está utilizando la versión 1.9.1 de PhantomJS, los encabezados personalizados no funcionarán.

Tienes que construir phantomjs por ti mismo o esperar hasta que phantomjs fusione ghostdriver cambie y lance una nueva versión.

  • Clon PhantomJS repositorio
  • Repositorio clon fantasma
  • copie el ghostdriver / src / * a phantomjs / src / ghostdriver recursivamente
  • construir phantomjs

Usando phantomjs recién compilado obtuve el siguiente resultado:

from selenium import webdriver webdriver.DesiredCapabilities.PHANTOMJS[''phantomjs.page.customHeaders.Accept-Language''] = ''ru-RU'' driver = webdriver.PhantomJS() driver.get(''http://httpbin.org/headers'') print(driver.page_source)

... { "headers": { "Connection": "close", "Host": "httpbin.org", "Accept-Encoding": "gzip", "Accept-Language": "ru-RU", "User-Agent": "Mozilla/5.0 (Unknown; Linux i686) AppleWebKit/534.34 (KHTML, like Gecko) PhantomJS/1.10.0 (development) Safari/534.34", "Accept": "text/html,application/xhtml+xml,application/xml;q=0.9,*/*;q=0.8" } ...

ACTUALIZAR

Utilice PhantomJS 1.9.2+ .