- ubuntu12.04环境下使用kvm ioctl接口实现最简单的虚拟机
- Ubuntu 通过无线网络安装Ubuntu Server启动系统后连接无线网络的方法
- 在Ubuntu上搭建网桥的方法
- ubuntu 虚拟机上网方式及相关配置详解
CFSDN坚持开源创造价值,我们致力于搭建一个资源共享平台,让每一个IT人在这里找到属于你的精彩世界.
这篇CFSDN的博客文章selenium设置proxy、headers的方法(phantomjs、Chrome、Firefox)由作者收集整理,如果你对这篇文章有兴趣,记得点赞哟.
本文介绍了selenium设置proxy、headers的方法,把phantomjs、Chrome、Firefox几个浏览器的设置方法都总结一下,分享给大家,也给自己留个笔记 。
phantomjs 。
设置ip 。
方法1:
1
2
3
4
5
6
7
8
|
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:
1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
|
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())
|
还原为系统代理 。
1
2
3
4
5
6
|
# 还原为系统代理
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'
)
|
设置请求头 。
方法2 。
1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
19
20
21
22
23
24
25
26
27
28
29
30
31
32
33
34
35
36
37
38
39
40
41
42
43
44
45
46
47
48
49
50
51
52
53
54
55
56
57
58
59
60
61
62
63
64
65
66
67
68
69
70
71
72
73
74
75
76
77
78
79
|
import
random,requests,json
from
selenium
import
webdriver
from
selenium.webdriver.common.desired_capabilities
import
DesiredCapabilities
from
selenium.webdriver.common.proxy
import
ProxyType
#随机获取一个ip
def
proxies():
r
=
requests.get(
"http://120.26.166.214:9840/JProxy/update/proxy/scoreproxy"
)
rr
=
json.loads(r.text)
hh
=
rr[
'ip'
]
+
":"
+
"8907"
print
(hh)
return
hh
ips
=
proxies()
#设置phantomjs请求头和代理方法一:
#-------------------------------------------------------------------------------------
# 设置代理
service_args
=
[
'--proxy=%s'
%
ips,
# 代理 IP:prot (eg:192.168.0.28:808)
'--ssl-protocol=any'
,
#忽略ssl协议
'--load - images = no'
,
# 关闭图片加载(可选)
'--disk-cache=yes'
,
# 开启缓存(可选)
'--ignore-ssl-errors=true'
# 忽略https错误(可选)
]
#设置请求头
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
"C:\soft\phantomjs-2.1.1-windows\bin\phantomjs.exe"
,
desired_capabilities
=
dcap,service_args
=
service_args)
driver.get(url
=
'http://www.baidu.com'
)
page
=
driver.page_source
print
(page)
#设置phantomjs请求头和代理方法二:
#-------------------------------------------------------------------------------------
desired_capabilities
=
DesiredCapabilities.PHANTOMJS.copy()
# 从USER_AGENTS列表中随机选一个浏览器头,伪装浏览器
desired_capabilities[
"phantomjs.page.settings.userAgent"
]
=
(random.choice(
'请求头池'
))
# 不载入图片,爬页面速度会快很多
desired_capabilities[
"phantomjs.page.settings.loadImages"
]
=
False
# 利用DesiredCapabilities(代理设置)参数值,重新打开一个sessionId,我看意思就相当于浏览器清空缓存后,加上代理重新访问一次url
proxy
=
webdriver.Proxy()
proxy.proxy_type
=
ProxyType.MANUAL
proxy.http_proxy
=
random.choice(
'ip池'
)
proxy.add_to_capabilities(desired_capabilities)
phantomjs_driver
=
r
'C:\phantomjs-2.1.1-windows\bin\phantomjs.exe'
# 打开带配置信息的phantomJS浏览器
driver
=
webdriver.PhantomJS(executable_path
=
phantomjs_driver,desired_capabilities
=
desired_capabilities)
driver.start_session(desired_capabilities)
driver.get(url
=
'http://www.baidu.com'
)
page
=
driver.page_source
print
(page)
# 隐式等待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
)
#翻页命令
driver.execute_script(
'window.scrollTo(0, document.body.scrollHeight)'
)
|
firefox 。
1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
19
20
21
22
23
24
25
26
27
28
29
30
31
32
33
34
35
36
|
import
time
from
selenium.webdriver.common.proxy
import
*
myProxy
=
'202.202.90.20:8080'
proxy
=
Proxy({
'proxyType'
: ProxyType.MANUAL,
'httpProxy'
: myProxy,
'ftpProxy'
: myProxy,
'sslProxy'
: myProxy,
'noProxy'
: ''
})
profile
=
webdriver.FirefoxProfile()
if
proxy:
profile
=
get_firefox_profile_with_proxy_set(profile, proxy)
if
user_agent:
profile.set_preference(
"general.useragent.override"
, user_agent)
driver
=
webdriver.Firefox(proxy
=
proxy,profile
=
profile)
driver.get(
'https://www.baidu.com'
)
time.sleep(
3
)
driver.quit()
firefox无头模式
from
selenium
import
webdriver
# 创建的新实例驱动
options
=
webdriver.FirefoxOptions()
#火狐无头模式
options.add_argument(
'--headless'
)
options.add_argument(
'--disable-gpu'
)
# options.add_argument('window-size=1200x600')
executable_path
=
'./source/geckodriver/geckodriver.exe'
driver_path
=
webdriver.Firefox(firefox_options
=
options,executable_path
=
executable_path)
|
chrome 。
1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
19
20
21
22
23
24
25
|
# !/usr/bin/python
# -*- coding: utf-8 -*-
from
selenium
import
webdriver
# 进入浏览器设置
options
=
webdriver.ChromeOptions()
#谷歌无头模式
options.add_argument(
'--headless'
)
options.add_argument(
'--disable-gpu'
)
# options.add_argument('window-size=1200x600')
# 设置中文
options.add_argument(
'lang=zh_CN.UTF-8'
)
# 更换头部
options.add_argument(
'user-agent="Mozilla/5.0 (iPod; U; CPU iPhone OS 2_1 like Mac OS X; ja-jp) AppleWebKit/525.18.1 (KHTML, like Gecko) Version/3.1.1 Mobile/5F137 Safari/525.20"'
)
#设置代理
if
proxy:
options.add_argument(
'proxy-server='
+
proxy)
if
user_agent:
options.add_argument(
'user-agent='
+
user_agent)
browser
=
webdriver.Chrome(chrome_options
=
options)
url
=
"https://httpbin.org/get?show_env=1"
browser.get(url)
browser.quit()
|
selenium设置chrome–cookie 。
1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
|
# !/usr/bin/python
# -*- coding: utf-8 -*-
from
selenium
import
webdriver
browser
=
webdriver.Chrome()
url
=
"https://www.baidu.com/"
browser.get(url)
# 通过js新打开一个窗口
newwindow
=
'window.open("https://www.baidu.com");'
# 删除原来的cookie
browser.delete_all_cookies()
# 携带cookie打开
browser.add_cookie({
'name'
:
'ABC'
,
'value'
:
'DEF'
})
# 通过js新打开一个窗口
browser.execute_script(newwindow)
input
(
"查看效果"
)
browser.quit()
|
selenium设置chrome-图片不加载 。
1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
|
from
selenium
import
webdriver
options
=
webdriver.ChromeOptions()
prefs
=
{
'profile.default_content_setting_values'
: {
'images'
:
2
}
}
options.add_experimental_option(
'prefs'
, prefs)
browser
=
webdriver.Chrome(chrome_options
=
options)
# browser = webdriver.Chrome()
url
=
"http://image.baidu.com/"
browser.get(url)
input
(
"是否有图"
)
browser.quit()
|
以上就是本文的全部内容,希望对大家的学习有所帮助,也希望大家多多支持我.
原文链接:https://blog.csdn.net/xc_zhou/article/details/80823855 。
最后此篇关于selenium设置proxy、headers的方法(phantomjs、Chrome、Firefox)的文章就讲到这里了,如果你想了解更多关于selenium设置proxy、headers的方法(phantomjs、Chrome、Firefox)的内容请搜索CFSDN的文章或继续浏览相关文章,希望大家以后支持我的博客! 。
非常简单的问题 - 是否可以通过 Chromium 创建 google chrome 扩展,并让在不同操作系统上运行 Chrome 的人使用相同的扩展? 我正在Ubuntu上开发。 最佳答案 是的,完
我了解 chrome.bookmarks API(记录在 http://goo.gl/tIb6V6 )旨在用于开发访问/操作我的 Chrome 书签的 Chrome 扩展程序(当然要在 Chrome
在比较开源浏览器 Firefox 和 Chromium 的扩展、附加组件和列表时,我试图找到一些有趣的数据。 我感兴趣的是多宿主扩展(两个浏览器列表上都可用的扩展)。 但是当浏览 Chromium 扩
使用新的 chrome.notifications API,我无法从我的扩展程序中获取通知以显示。即使是最基本的通知也无法为我显示,但我没有收到任何错误,并且回调函数已正确执行。 list .json
我正在构建一个在 Chrome 上运行的信息亭媒体,可以播放带音频的视频。我知道默认情况下,chrome 只允许自动播放带有静音 Prop 的视频。 而且我知道我可以通过 chrome://flags
我从来没有真正写过 真实 Chrome 扩展程序。不久前我做了一个只是一个链接下拉列表,但这并不重要。无论如何,与其先回到关于编写 Chrome 扩展程序的大量教程中,不如先确保我的想法是可行的。 我
主要目的是在单个容器中运行多个 chrome 浏览器(9 个浏览器)。 我有一个集线器和节点设置,其中包含多个浏览器的容器,可在单个 chrome 节点容器中运行。我使用以下 docker 命令创建了
我想写一个小的 chrome 扩展程序,它应该从网页 A(当前网页)获取信息,将选项卡更新到网页 B,然后将代码注入(inject)网页 B。不幸的是,以下代码正在将网页更新到 B 但注入(injec
是否可以打开 Chrome 开发者工具来检查 Chrome 应用? 最佳答案 所有可调试目标都列在 chrome://inspect/ 下。请参阅“应用程序”标签。 关于google-chrome -
我正在为 Google Chrome 开发一个应用程序,我想知道如何收费。 问题是我住在巴西,在这个链接上它告诉我它不支持 Chrome 网上应用店付款。如果没有 Chrome 网上商店付款,我可以通
我刚刚更新到 Chrome 32.0.1700.76 m(在 Win7 上)并且开发人员工具已更改。 特别令人痛苦的是用于检查页面元素的放大镜图标消失了。也没有提到它的快捷方式列表。 任何人都知道这已
我在 chrome-extension API (chrome.webrequest) 中遇到问题。 我的 list .json { "name": "tesst", "version": "
我已经制作了 chrome 主机来在我的扩展程序和我的进程之间传递 native 消息,我的进程在 chrome 启动时启动,但在我关闭 chrome 时不关闭,我应该向主机的 list 添加参数还是
文档对此非常不清楚。我知道如果您自己托管您的扩展程序,您可以通过增加版本号来自动更新您的扩展程序。但是,我不知道您是否可以在仍发布到 chrome 网上商店的同时进行自托管。 我不敢相信 Google
我最近一直在使用 Selenium WebDriver。我还专门与 chromedriver 合作。每当我打开一个新的 chrome 窗口 (driver.get(url)) 时,Chrome 都会以
我指的是chrome://flags 我很想知道是否可以通过自定义 chrome 扩展启用或禁用特定的 chrome 标志? 例如-我想启用 Enable Media Source API on e
当我在 chrome 开发者仪表板上向我的扩展程序上传更新时, 它无法这样做,它显示, An error occurred: Failed to process your item. Chrome W
我正在尝试编写一个需要用户身份验证的 chrome 扩展。 Google's tutorial建议我需要先上传到网上商店才能获得 key : Login to the Google APIs Cons
我已经开发了一个 Chrome 扩展程序并且我已经打包了它。 我将我的扩展程序发送给一些人试用,但 Chrome 开始阻止它在商店中找不到的扩展程序。 有没有办法安装我的扩展程序而不会被 Chrome
某些 Chrome 扩展不适用于 Chromium。例如:http://code.google.com/chrome/extensions/samples.html#5d81304a17cf7ac28
我是一名优秀的程序员,十分优秀!