RJ博客

python动态页面爬虫(二) - Selenium+Chrome

本文目录

最近在使用Selenium+PhantomJS动态抓取网页时,发现了Selenium已经放弃PhantomJS的警告,具体警告内容如下: 

UserWarning: Selenium support for PhantomJS has been deprecated, please use headless versions of Chrome or Firefox instead warnings.warn('Selenium support for PhantomJS has been deprecated, please use headless'

有两个解决办法:

1) 重新安装并指定版本号pip install selenium==2.48.0

2) 使用火狐或者谷歌无界面浏览器


如果采用selenium降版本的方法,爬取谷歌页面的时候,有可能出现随机验证码,于是我切换到Chrome浏览器,在Windows上正常。但在Linux上遇到了如下问题:

1) 注意版本号对应关系( http://chromedriver.storage.googleapis.com/index.html )

2) Linux需要安装Chrome浏览器( https://www.jianshu.com/p/f1d88e723c1d )

3) 本地需要chromedriver驱动器文件,如果不配置环境变量的话,需要手动指定executable_path参数

4) 如果Linux缺少中文字体,会有显示乱码问题

https://blog.csdn.net/u011550708/article/details/84587439

https://www.aityp.com/centos7%E5%AE%89%E8%A3%85%E4%B8%AD%E6%96%87%E5%AE%8B%E4%BD%93-phantomjs )

5) 谷歌账号异地登录问题(异地登录提示后,用本地登录解除,再次登录就不会报异地了)


chrome headless模式实例代码:

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

chrome_options=Options()
#设置chrome浏览器无界面模式
chrome_options.add_argument('--headless')
chrome_options.add_argument('--disable-gpu')
#设置语言
chrome_options.add_argument('-lang=zh-cn');
# chrome_options.add_argument('-lang=en-GB');

chrome_options.add_argument('window-size=1920x3000') #指定浏览器分辨率

driver = webdriver.Chrome(chrome_options=chrome_options, executable_path='chromedriver')

driver.get('https://www.google.com.hk')
driver.save_screenshot('screenshot.png')
driver.close()


另外关于爬虫内容保存问题:

1) 'gbk' codec can't encode character

https://www.jianshu.com/p/5c391b605d27

出错的原因是网页及python的编码都是utf-8,在写入文件时Windows默认转码成gbk,遇到某些gbk不支持的字符就会报错。在打开文件时就声明编码方式为utf-8就能避免这个错误。解决方法十分简单:

f = open('lagou.html', 'w',encoding='utf-8')

使用open()函数时一定不要忘了加上encoding='utf-8'参数

2) python3 writerow CSV文件多一个空行

https://blog.csdn.net/pfm685757/article/details/47806469

outputfile=open("out.csv",'w',encoding='utf8',newline='')

python参考手册里的解释,在windows这种使用\r\n的系统里,不用newline=''的话,会自动在行尾多添加个\r,导致多出一个空行,即行尾为\r\r\n



Refer:

https://blog.csdn.net/u010358168/article/details/79749149

https://www.shaobin.wang/post/33.html (关键)

https://segmentfault.com/a/1190000015789007

相关推荐

发表评论