Python 爬虫杂记 - Chrome Headless

Chrome Headless使用

测试 Chrome 版本: 62.0.3202.89(正式版本)(64 位)
Python环境:python2.7

注: Headless模式需要59版本及以上!

Chrome的安装与配置不在此赘述, 不过需要注意的是:

版本号与驱动的映射关系!
版本号与驱动的映射关系!!

版本号与驱动的映射关系!!!

Chrome与Chromedriver的映射关系表:


Chromedriver下载链接:http://chromedriver.storage.googleapis.com/index.html

1. 使用Headless模式
from selenium import webdriver
from selenium.webdriver.chrome.options import Options

chrome_options = Options()
# 无头模式启动
chrome_options.add_argument('--headless')
# 谷歌文档提到需要加上这个属性来规避bug
chrome_options.add_argument('--disable-gpu')
# 初始化实例
driver= webdriver.Chrome(chrome_options=chrome_options)
# 请求百度
driver.get("http://www.baidu.com")
2. 禁用图片
2.1 网上大多数的资料给的是以下这种方式, 但是在Headless的模式下并没有生效, 在非Headless的模式下是生效的。
prefs = {"profile.managed_default_content_settings.images": 2}
chrome_options.add_experimental_option("prefs", prefs)
2.2 以下的这种方式在Headless的模式下是生效的, 非Headless模式下也是生效的。
chrome_options.add_argument('blink-settings=imagesEnabled=false')
3. 添加代理
chrome_options.add_argument("--proxy-server=http://" + ip:port)
4. 修改User-Agent
Chrome Headless模式为什么要修改User-Agent, 来看一下同一个浏览器不同模式下的User-Agent:
"User-Agent":"Mozilla/5.0 (X11; Linux x86_64) AppleWebKit/537.36 (KHTML, like Gecko) HeadlessChrome/62.0.3202.89 Safari/537.36"
"User-Agent":"Mozilla/5.0 (X11; Linux x86_64) AppleWebKit/537.36 (KHTML, like Gecko) Chrome/62.0.3202.89 Safari/537.36"
# 修改User-Agent
chrome_options.add_argument('user-agent= '你想修改成的User-Agent')
5. 打开新的标签页
#打开空白标签页的方式有很多, 在此只演示一种
js='window.open("https://www.jianshu.com/p/4fef4142b33f");'
driver.execute_script(js) # 通过打开新的标签页, 可以节省浏览器打开的时间,减少资源的浪费。
6. 关闭新打开的标签页
# 分两步走
# 1.获取标签页的句柄
handlesList = driver.window_handles  # 返回一个浏览器中所有标签的句柄列表, 顺序为打开窗口的顺序
# 2. 切换窗口, 关闭标签
driver.switch_to.window(handlesList[0]) # 切换到百度标签
driver.close()    # 关闭标签,这里必须用 driver.close() ,用driver.quit()会导致浏览器关闭
7. driver使用完之后切记要driver.quit(), 不然或导致内存爆满
8. 其他:

切换标签的时候,我之前用的方法会出现这种状况, 原因是该方法不支持了:

不支持的不只是这一种, 还有如下:

driver.switch_to_active_element()       ==>    driver.switch_to.active_element()            定位到当前聚焦的元素上

driver.switch_to_alert()                ==>    driver.switch_to.alert()                     切换到alert弹窗

driver.switch_to_default_content()      ==>    driver.switch_to.default_content()           切换到最上层页面
                                               
driver.switch_to_frame(frame_reference)  ==>   driver.switch_to.frame(frame_reference)       通过id、name、element(定位的某个元素)、索引来切换到某个frame

driver.switch_to_window()                ==>   driver.switch_to.window()                     切换到指定的标签页

driver.switch_to.parent_frame()  switch_to中独有,可以切换到上一层的frame,对于层层嵌套的frame很有用

注: 用pycharm编程的时候还是提示switch_to_window, 但此方法已经不能用了!!

本人水平有限, 如有错误欢迎提出指正!如有参考, 请注明出处!!禁止抄袭,遇抄必肛!!!

最后编辑于
©著作权归作者所有,转载或内容合作请联系作者
  • 序言:七十年代末,一起剥皮案震惊了整个滨河市,随后出现的几起案子,更是在滨河造成了极大的恐慌,老刑警刘岩,带你破解...
    沈念sama阅读 201,681评论 5 474
  • 序言:滨河连续发生了三起死亡事件,死亡现场离奇诡异,居然都是意外死亡,警方通过查阅死者的电脑和手机,发现死者居然都...
    沈念sama阅读 84,710评论 2 377
  • 文/潘晓璐 我一进店门,熙熙楼的掌柜王于贵愁眉苦脸地迎上来,“玉大人,你说我怎么就摊上这事。” “怎么了?”我有些...
    开封第一讲书人阅读 148,623评论 0 334
  • 文/不坏的土叔 我叫张陵,是天一观的道长。 经常有香客问我,道长,这世上最难降的妖魔是什么? 我笑而不...
    开封第一讲书人阅读 54,202评论 1 272
  • 正文 为了忘掉前任,我火速办了婚礼,结果婚礼上,老公的妹妹穿的比我还像新娘。我一直安慰自己,他们只是感情好,可当我...
    茶点故事阅读 63,232评论 5 363
  • 文/花漫 我一把揭开白布。 她就那样静静地躺着,像睡着了一般。 火红的嫁衣衬着肌肤如雪。 梳的纹丝不乱的头发上,一...
    开封第一讲书人阅读 48,368评论 1 281
  • 那天,我揣着相机与录音,去河边找鬼。 笑死,一个胖子当着我的面吹牛,可吹牛的内容都是我干的。 我是一名探鬼主播,决...
    沈念sama阅读 37,795评论 3 393
  • 文/苍兰香墨 我猛地睁开眼,长吁一口气:“原来是场噩梦啊……” “哼!你这毒妇竟也来了?” 一声冷哼从身侧响起,我...
    开封第一讲书人阅读 36,461评论 0 256
  • 序言:老挝万荣一对情侣失踪,失踪者是张志新(化名)和其女友刘颖,没想到半个月后,有当地人在树林里发现了一具尸体,经...
    沈念sama阅读 40,647评论 1 295
  • 正文 独居荒郊野岭守林人离奇死亡,尸身上长有42处带血的脓包…… 初始之章·张勋 以下内容为张勋视角 年9月15日...
    茶点故事阅读 35,476评论 2 317
  • 正文 我和宋清朗相恋三年,在试婚纱的时候发现自己被绿了。 大学时的朋友给我发了我未婚夫和他白月光在一起吃饭的照片。...
    茶点故事阅读 37,525评论 1 329
  • 序言:一个原本活蹦乱跳的男人离奇死亡,死状恐怖,灵堂内的尸体忽然破棺而出,到底是诈尸还是另有隐情,我是刑警宁泽,带...
    沈念sama阅读 33,226评论 3 318
  • 正文 年R本政府宣布,位于F岛的核电站,受9级特大地震影响,放射性物质发生泄漏。R本人自食恶果不足惜,却给世界环境...
    茶点故事阅读 38,785评论 3 303
  • 文/蒙蒙 一、第九天 我趴在偏房一处隐蔽的房顶上张望。 院中可真热闹,春花似锦、人声如沸。这庄子的主人今日做“春日...
    开封第一讲书人阅读 29,857评论 0 19
  • 文/苍兰香墨 我抬头看了看天上的太阳。三九已至,却和暖如春,着一层夹袄步出监牢的瞬间,已是汗流浃背。 一阵脚步声响...
    开封第一讲书人阅读 31,090评论 1 258
  • 我被黑心中介骗来泰国打工, 没想到刚下飞机就差点儿被人妖公主榨干…… 1. 我叫王不留,地道东北人。 一个月前我还...
    沈念sama阅读 42,647评论 2 348
  • 正文 我出身青楼,却偏偏与公主长得像,于是被迫代替她去往敌国和亲。 传闻我的和亲对象是个残疾皇子,可洞房花烛夜当晚...
    茶点故事阅读 42,215评论 2 341

推荐阅读更多精彩内容

  • 人的一生都会扮演很多角色,如果你不高兴,你可以把剧本扔了。不过记住,有一份剧本是真正属于你的,千万别丢错了-吕子乔
    最怕突然听到你的消息阅读 228评论 0 0
  • 为什么会做不到逐字阅读了?我们每天主动或者被动的接受各种信息,大部分是无用的,QQ、朋友圈、微博、头条还有时不时跳...
    张学安阅读 317评论 0 0
  • 如题~ 因为不自主!
    fad5a0d798e9阅读 216评论 0 0
  • 读《思考致富》非常熟悉,因为在这之前阅读了《秘密》。两本书讲述的是一个原理:心想事成! 《秘密》展示的是一种神秘感...
    顾鸣芬阅读 544评论 0 1
  • 这张脸没有一丝的表情,长得远谈不上周正,右边没左边大。隔近了看,极其陌生。 这是一张油腻腻的脸,坑坑洼洼随处可见,...
    上校YIN阅读 3,133评论 0 4