phantomjs 设置代理

Posted niansi

tags:

篇首语:本文由小常识网(cha138.com)小编为大家整理,主要介绍了phantomjs 设置代理相关的知识,希望对你有一定的参考价值。

phantomjs 可通过以下设置代理ip

#coding=utf-8
import os
import re
import time
import requests
from scrapy.selector import htmlXPathSelector
from scrapy.http import HtmlResponse
from selenium import webdriver
from selenium.webdriver.common.proxy import ProxyType

import sys
reload(sys)
sys.setdefaultencoding("utf-8")

import warnings
warnings.filterwarnings("ignore")


if __name__ == \'__main__\':
PATH_PHANTOMJS=r\'D:\\phantomjs\\bin\\phantomjs.exe\'
browser=webdriver.PhantomJS(PATH_PHANTOMJS)
#真实ip
browser.get(\'http://icanhazip.com/\') #获取ip网址
response = HtmlResponse(url=\'\',body=str(browser.page_source))
hxs = HtmlXPathSelector(response)
print \'your ip is:\',\'\'.join(hxs.select(\'//text()\').extract()).strip()
#代理ip
proxy=webdriver.Proxy()
proxy.proxy_type=ProxyType.MANUAL
proxy.http_proxy=\'220.248.229.45:3128\'
#将代理设置添加到webdriver.DesiredCapabilities.PHANTOMJS中
proxy.add_to_capabilities(webdriver.DesiredCapabilities.PHANTOMJS)
browser.start_session(webdriver.DesiredCapabilities.PHANTOMJS)
browser.get(\'http://icanhazip.com/\') #获取ip网址
response = HtmlResponse(url=\'\',body=str(browser.page_source))
hxs = HtmlXPathSelector(response)
print \'your proxy ip is:\',\'\'.join(hxs.select(\'//text()\').extract()).strip()

经测试,实际有效,截图如下:

后期可以考虑将此方法运用至下载中,减少爬虫被封的几率。

以上是关于phantomjs 设置代理的主要内容,如果未能解决你的问题,请参考以下文章

selenium+Phantomjs代理设置

如何在 selenium-webdriver 中为 phantomjs 驱动程序设置一个用户代理?

为什么我在python中使用PhantomJS同时拥有两个不同的用户代理?

Socks5协议错误PhantomJS

phantomjs和selenium设置proxyheaders

通过 Charles 代理 casperjs / phantomjs