Próbuję ustawić proxy dla webscraping przy użyciu selenu + phantomjs. Używam Pythona.phantomjs + selen w python proxy-auth nie działa
Widziałem w wielu miejscach, że istnieje błąd w phantomjs, taki że proxy-auth nie działa.
from selenium.webdriver.common.proxy import *
from selenium import webdriver
from selenium.webdriver.common.by import By
service_args = [
'--proxy=http://fr.proxymesh.com:31280',
'--proxy-auth=USER:PWD',
'--proxy-type=http',
]
driver = webdriver.PhantomJS(service_args=service_args)
driver.get("https://www.google.com")
print driver.page_source
Pełnomocnik siatki proponuje zastosowanie następujące zamiast:
page.customHeaders = { 'pośredniej autoryzacji': 'podstawowe '+ btoa (': Hasło')};
, ale nie jestem pewien, jak to przetłumaczyć na pytona.
To co obecnie mam:
from selenium import webdriver
import base64
from selenium.webdriver.common.proxy import *
from selenium import webdriver
from selenium.webdriver.common.by import By
service_args = [
'--proxy=http://fr.proxymesh.com:31280',
'--proxy-type=http',
]
headers = { 'Proxy-Authorization': 'Basic ' + base64.b64encode('USERNAME:PASSWORD')}
for key, value in enumerate(headers):
webdriver.DesiredCapabilities.PHANTOMJS['phantomjs.page.customHeaders.{}'.format(key)] = value
driver = webdriver.PhantomJS(service_args=service_args)
driver.get("https://www.google.com")
print driver.page_source
ale to nie działa.
Jakieś sugestie, jak mogę to uruchomić?
Czy potrzebujesz użyć Selenium i PhantomJS? W przypadku skriningu internetowego powinny istnieć opcje bardziej elastyczne. –
Muszę zeskanować stronę javscript. Wszelkie sugestie dotyczące tego, czego jeszcze mogę użyć? – chris
Brak lepszej sugestii w tym przypadku. –