python下的selenium和PhantomJS

当使用Python的Selenium库抓取JavaScript渲染页面时,发现新版本不再支持PhantomJS。本文介绍了两种解决方案:一是降级Selenium到3.4.3版本以继续使用PhantomJS,二是尝试使用Headless Chrome和Firefox。然而,作者在尝试Headless模式时遇到版本不一致的问题,最终通过找到老版本的PhantomJS解决问题。此外,还分享了在设置壁纸过程中遇到的路径格式问题及其解决方案。
摘要由CSDN通过智能技术生成

一般我们使用python的第三方库requests及框架scrapy来爬取网上的资源,但是设计javascript渲染的页面却不能抓取,此时,我们使用web自动化测试化工具Selenium+无界面浏览器PhantomJS来抓取javascript渲染的页面, 但是新版本的Selenium不再支持PhantomJS了,请使用Chrome或Firefox的无头版本来替代。

如下图:

这里有2中解决方案, 我采用第一种, 第二种搞了很久也没有成功

一:降级selenium使用
pip uninstall selenium #先卸载selenium 
pip install selenium==3.4.3 #指定版本安装selenium

防止以后官网没得下载,先备份个selenium3.4.3和PhantomJS 下载地址

二:使用Headless Chrome和Headless Firefox
使用Headless Chrome
Headless模式是Chrome 59中的新特征。
要使用Chrome需要安装 chromedriver。
chromedriver驱动大全

from selenium import webdriver
from selenium.webdriver.chrome.options import Options

chrome_options = Options()
chrome_options.add_argument('--headless')
chrome_options.add_argument('--disable-gpu')
br = webdriver.Chrome(chrome_options=chrome_options)
br.get('https://www.baidu.com/')
baidu = br.find_element_by_id('su').get_attribute('value')
print(baidu)

使用Headless Firefox

要使用Firebox需要安装 geckodriver。
geckodriver.exe驱动大

评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值