【发布时间】:2017-01-11 19:01:04
【问题描述】:
我正在尝试使用 selenium + phantomjs 设置网络抓取代理。我正在使用python。
我在很多地方都看到 phantomjs 中存在一个错误,导致 proxy-auth 不起作用。
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
代理网格建议使用以下内容:
page.customHeaders={'Proxy-Authorization': '基本'+btoa('USERNAME:PASSWORD')};
但我不确定如何将其翻译成 python。
这是我目前拥有的:
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
但它不起作用。
关于如何让它工作的任何建议?
【问题讨论】:
-
你需要使用 Selenium 和 PhantomJS 吗?对于网络抓取,应该有更灵活的选项。
-
我需要抓取一个 javscript 网站。有什么我可以使用的建议吗?
-
在这种情况下没有更好的建议。
标签: python selenium proxy phantomjs