phantomjs和selenium设置proxy、headers

设置ip

方法1:

service_args = [
    ‘--proxy=%s‘ % ip_html,    # 代理 IP:prot    (eg:192.168.0.28:808)
    ‘--proxy-type=http’,            # 代理类型:http/https
    ‘--load-images=no’,           # 关闭图片加载(可选)
    ‘--disk-cache=yes’,            # 开启缓存(可选)
    ‘--ignore-ssl-errors=true’    # 忽略https错误(可选)
]
driver = webdriver.PhantomJS(service_args=service_args)

方法2:

browser=webdriver.PhantomJS(PATH_PHANTOMJS)

# 利用DesiredCapabilities(代理设置)参数值,重新打开一个sessionId,我看意思就相当于浏览器清空缓存后,加上代理重新访问一次url
proxy=webdriver.Proxy()
proxy.proxy_type=ProxyType.MANUAL
proxy.http_proxy=‘1.9.171.51:800‘

# 将代理设置添加到webdriver.DesiredCapabilities.PHANTOMJS中
proxy.add_to_capabilities(webdriver.DesiredCapabilities.PHANTOMJS)
browser.start_session(webdriver.DesiredCapabilities.PHANTOMJS)
browser.get(‘http://1212.ip138.com/ic.asp‘)

print(‘1: ‘,browser.session_id)
print(‘2: ‘,browser.page_source)
print(‘3: ‘,browser.get_cookies())
还原为系统代理

# 还原为系统代理
proxy=webdriver.Proxy()
proxy.proxy_type=ProxyType.DIRECT
proxy.add_to_capabilities(webdriver.DesiredCapabilities.PHANTOMJS)
browser.start_session(webdriver.DesiredCapabilities.PHANTOMJS)
browser.get(‘http://1212.ip138.com/ic.asp‘)

设置请求头

方法1

# -*- coding:utf-8 -*-
from selenium import webdriver
from selenium.webdriver.common.desired_capabilities import DesiredCapabilities
from selenium.webdriver.common.proxy import ProxyType 

desired_capabilities = DesiredCapabilities.PHANTOMJS.copy()
# 从USER_AGENTS列表中随机选一个浏览器头,伪装浏览器
desired_capabilities["phantomjs.page.settings.userAgent"] = (random.choice(headers.my_headers))
# 不载入图片,爬页面速度会快很多
desired_capabilities["phantomjs.page.settings.loadImages"] = False

# 打开带配置信息的phantomJS浏览器
driver = webdriver.PhantomJS(executable_path=phantomjs_driver,desired_capabilities=desired_capabilities)
driver.start_session(desired_capabilities)
# 隐式等待5秒,可以自己调节
driver.implicitly_wait(5)
# 设置10秒页面超时返回,类似于requests.get()的timeout选项,driver.get()没有timeout选项
# 以前遇到过driver.get(url)一直不返回,但也不报错的问题,这时程序会卡住,设置超时选项能解决这个问题。
driver.set_page_load_timeout(20)
# 设置10秒脚本超时时间
driver.set_script_timeout(20) 

方法2

from selenium.webdriver.common.desired_capabilities import DesiredCapabilities
from selenium import webdriver

# 设置请求头
user_agent = (
        "Mozilla/5.0 (Macintosh; Intel Mac OS X 10_8_4) " +
        "AppleWebKit/537.36 (KHTML, like Gecko) Chrome/29.0.1547.57 Safari/537.36"
    )
dcap = dict(DesiredCapabilities.PHANTOMJS)
dcap["phantomjs.page.settings.userAgent"] = user_agent

driver = webdriver.PhantomJS(executable_path=r"/home/zhou/phantomjs-2.1.1-linux-x86_64/bin/phantomjs", desired_capabilities=dcap)
时间: 2024-11-11 18:17:07

phantomjs和selenium设置proxy、headers的相关文章

设置Proxy Server和SQL Server实现互联网上的数据库安全

◆首先,我们需要了解一下SQL Server在WinSock上定义协议的步骤: 1. 在"启动"菜单上,指向"程序/Microsoft Proxy Server",然后点击"Microsoft Management Console". 2. 展开"Internet Information Service",再展开运行Proxy Server的服务器. 3. 右击WinSock Proxy service, 再点击属性. 4.

在没有插件的情况下为Chrome设置Proxy

Chrome更新过后不支持安装本地插件了,但是没有proxy的情况下又不能访问Chrome商店,这样就形成了一个死循环: 可以使用命令行启动的方式为Chrome设置proxy,命令行中输入: chrome执行程序 --proxy-server="socks5://localhost:1080"

Scrapy selenium 设置头部信息headers-------UA

1,PhantomJS from selenium.webdriver.common.desired_capabilities import DesiredCapabilities from selenium import webdriver dcap = dict(DesiredCapabilities.PHANTOMJS) dcap['phantomjs.page.settings.userAgent'] = 'Mozilla/5.0 (Windows NT 6.1; Win64; x64)

scrapy使用PhantomJS和selenium爬取数据

1.phantomjs 安装 下载:http://phantomjs.org/download.html 解压: tar -jxvf phantomjs-2.1.1-linux-x86_64.tar.bz2 重命名: mv /usr/local/phantomjs-2.1.1-linux-x86_64/ /usr/local/phantomjs 软连接: ln -s /usr/local/phantomjs/bin/phantomjs /usr/bin/ [[email protected] /

PhantomJS 和Selenium模拟页面js点击

由于自己不怎么会javascripts,无法找全所有的参数进行模拟提交,所以只能寻求Selenium和PhantpmJS的方式. 先说下ubuntu上怎么安装相应的环境,尤其PhantomJS安装比较蛋疼.其他内容后续再补 1.环境配置 pip install selenium 安装PhantomJS采取曲线救国的方式:先安装NodeJs, 再用NodeJS 的包管理工具安装PhantomJS. sudo apt-get install nodejs-legacy sudo apt-get in

为gradle设置proxy

官方文档:http://www.gradle.org/docs/current/userguide/build_environment.html 以下配置写在gradle.properties中: //以下为http协议proxy配置 systemProp.http.proxyHost=www.somehost.org //proxy主机 systemProp.http.proxyPort=8080 //proxy端口 systemProp.http.proxyUser=userid //pro

自动脚本(pac)和手动设置Proxy的读取方式的java实现(http,tcp)

 一概述 本文介绍两种proxy的配置方式以及读取方式的java代码实现 项目中配置Proxy用到了两种方式 1 配置代理服务器 2 使用自动配置脚本,也就是配置pac方式 两种方式的目的都是给本机配置代理服务器,而第二种方式在配置策略上更加灵活 无论使用哪种代理方式,我们讨论的代理类型都为以下三个方式: DIRECT, HTTP(PROXY), SOCKS 二配置代理服务器 1通过手动方式配置代理服务器. 优点:简单,直观 缺点:适配性差,无法实现策略匹配 2设定规则: 当同时设定了HTT

为WebDriver 设置proxy(IE设置代理)

IE driver String PROXY = "http://proxy:8083"; org.openqa.selenium.Proxy proxy = new org.openqa.selenium.Proxy(); proxy.setHttpProxy(PROXY) .setFtpProxy(PROXY) .setSslProxy(PROXY); DesiredCapabilities ds = DesiredCapabilities.internetExplorer();

使用firefoxprofile,selenium设置firefox,初始化firefox

1.什么是firefoxprofile       简单的来说就是个人定制,比如你设置自己访问主页,禁用加载图片这些个性化的设置,都可以保存到一个文件夹下,就是firefoxprofile,下次使用时候,加载该firefoxprofile,就可以让自己火狐浏览器设置跟之前配置一样 2.为什么selenium要用firefoxprofile      我们自动化测试的时候,有时不需要图片加载出来,提高浏览器加载速度,从而提高脚本的执行速度.另外在一些网络比较差的环境下,禁用css.图片等加载可以提