Python中如何解决Phantomjs代理问题

service_args = [

"--proxy-type=http",

“–proxy=218.91.112.196:9999”,

“–ssl-protocol=any”,

]

dcap = dict(DesiredCapabilities.PHANTOMJS)

dcap["phantomjs.page.settings.userAgent"] = ("Mozilla/5.0 (iPhone; CPU iPhone OS 12_3_1 like Mac OS X) AppleWebKit/605.1.15 (KHTML, like Gecko) Version/12.1.1 Mobile/15E148 Safari/604.1")

driver = webdriver.PhantomJS(desired_capabilities=dcap,service_args=service_args)

driver.set_page_load_timeout(30)

try:

driver.get("http://test.com")

print(driver.page_source)

except:

pass

driver.quit()

service_args=service_args 加上这一个就返回

不加代理就能正常读取内容 试了几个代理都不行,Mayday Mayday !

Selenium 2.48 Phantomjs2.1.1 Python3.7 Windows10


Python中如何解决Phantomjs代理问题

2 回复

PhantomJS的代理设置可以通过命令行参数或WebDriver的DesiredCapabilities来实现。以下是两种常用方法:

方法1:通过命令行参数设置代理

from selenium import webdriver

service_args = [
    '--proxy=127.0.0.1:8080',
    '--proxy-type=http'
]

driver = webdriver.PhantomJS(service_args=service_args)
driver.get("http://example.com")

方法2:通过DesiredCapabilities设置代理

from selenium import webdriver

capabilities = webdriver.DesiredCapabilities.PHANTOMJS.copy()
capabilities['phantomjs.page.settings.proxy'] = 'http://127.0.0.1:8080'

driver = webdriver.PhantomJS(desired_capabilities=capabilities)
driver.get("http://example.com")

如果需要认证代理,可以这样处理:

service_args = [
    '--proxy=username:password@proxy_ip:port',
    '--proxy-type=http',
    '--proxy-auth=username:password'
]

注意:PhantomJS官方已停止维护,建议考虑使用Headless Chrome或Firefox替代。如果坚持使用PhantomJS,确保代理地址和端口正确,且代理服务正常运行。

总结:根据代理类型选择合适的配置方式。


有没有大神,求解答…

回到顶部