support please macosx has for example been python selenium-webdriver phantomjs

python - please - Proxy+Selenium+PhantomJS no puede cambiar User-Agent



selenium phantomjs example (1)

Esto es lo que funcionó para mí:

En mi caso, eché un vistazo más de cerca a las capacidades del controlador PhantomJS:

dcap = dict(DesiredCapabilities.PHANTOMJS) dcap["phantomjs.page.settings.userAgent"] = "Mozilla/5.0 (X11; Linux x86_64) AppleWebKit/53 (KHTML, like Gecko) Chrome/15.0.87" service_args = [ ''--proxy=5.135.176.41:3123'', ''--proxy-type=http'', ] phantom = webdriver.PhantomJS(js_path, desired_capabilities=dcap, service_args =service_args) print(phantom.capabilities)

La salida fue:

{''databaseEnabled'': False, ''handlesAlerts'': False, ''rotatable'': False, ''browserConnectionEnabled'': False, ''browserName'': ''phantomjs'', ''takesScreenshot'': True, ''nativeEvents'': True, ''locationContextEnabled'': False, ''phantomjs.page.settings.userAgent'': ''Mozilla/5.0 (X11; Linux x86_64) AppleWebKit/53 (KHTML, like Gecko) Chrome/15.0.87'', ''platform'': ''linux-unknown-64bit'', ''version'': ''2.1.1'', ''applicationCacheEnabled'': False, ''driverName'': ''ghostdriver'', ''webStorageEnabled'': False, ''javascriptEnabled'': True, ''cssSelectorsEnabled'': True, ''proxy'': {''proxyType'': ''direct''}, ''acceptSslCerts'': False, ''driverVersion'': ''1.2.0''}

Lo que significa que el userAgent realmente se configuró correctamente ( ''phantomjs.page.settings.userAgent'': ''Mozilla/5.0 (X11; Linux x86_64) AppleWebKit/53 (KHTML, like Gecko) Chrome/15.0.87'' ), pero de alguna manera lo hizo no tomar el proxy que configuré con los service-args. Sin embargo, manipular las capacidades de forma manual como esto funcionó bastante bien:

dcap = dict(DesiredCapabilities.PHANTOMJS) dcap["phantomjs.page.settings.userAgent"] = "Mozilla/5.0 (X11; Linux x86_64) AppleWebKit/53 (KHTML, like Gecko) Chrome/15.0.87" phantom = webdriver.PhantomJS(js_path, desired_capabilities=dcap) phantom.capabilities["acceptSslCerts"] = True phantom.capabilities["proxy"] = {"proxy": "5.135.176.41:3123", "proxy-type": "http"} max_wait = 20 phantom.set_window_size(1024, 768) phantom.set_page_load_timeout(max_wait) phantom.set_script_timeout(max_wait) phantom.get(url)

Gracias por esta pregunta, en realidad estaba buscando proxis con PhantomJS durante bastante tiempo y esta pregunta me llevó por el camino correcto. ¡Espero que esto ayude!

Cuando se usa proxy con phantomjs, se usa el usuario-agente predeterminado de python.

Running: Python 3.5.1 en ubuntu 14.04

service_args = [] if self.proxy: service_args.extend([ ''--proxy={}:{}''.format(self.proxy.host, self.proxy.port), ''--proxy-type={}''.format(self.proxy.proto), ]) if self.proxy.username and self.proxy.password: service_args.append( ''--proxy-auth={}:{}''.format(self.proxy.username, self.proxy.password) ) dcap = dict(DesiredCapabilities.PHANTOMJS) dcap["phantomjs.page.settings.userAgent"] = ( "Mozilla/5.0 (X11; Linux x86_64) AppleWebKit/53 " "(KHTML, like Gecko) Chrome/15.0.87" ) self.webdriver = webdriver.PhantomJS(service_args=service_args, desired_capabilities=dcap)

Y error:

Mensaje: Mensaje de error => ''No se puede encontrar el elemento con el selector css'' #navcnt td.cur '''' causado por Request => {"headers": {"Accept": "application / json", "Accept-Encoding": " identidad "," Conexión ":" cerrar "," Contenido-Longitud ":" 105 "," Tipo de contenido ":" application / json; charset = UTF-8 "," Host ":" 127.0.0.1:39281 " , "User-Agent": "Python-urllib / 3.5" } ...

En una pregunta similar, se llegó a la conclusión de que el problema era causado por el proveedor de proxy al configurar user-agent en el servidor, sin embargo, dudo que sea el caso aquí, ya que puedo modificarlo utilizando proxy con chrome.