Python      python3使用无头浏览器   
文章目录  [隐藏]



selenium是一个用于Web应用程序测试的工具。Selenium测试直接运行在浏览器中,就像真正的用户在操作一样。
pip3 install selenium -i https://pypi.douban.com/simple/

1.PhantomJS+Selenium

PhantomJS是一个基于webkit的无头浏览器JavaScript API。
https://phantomjs.org/download.html
https://bitbucket.org/ariya/phantomjs/downloads/phantomjs-2.1.1-macosx.zip
直接使用PhantomJS可以看这里:
https://phantomjs.org/quick-start.html
https://www.jianshu.com/p/8210a17bcdb8


2.Chrome+Selenium

要使用Chrome浏览器的无头模式驱动,须根据当前浏览器的版本下载,即本地须已有一个正常的Chrome浏览。
http://npm.taobao.org/mirrors/chromedriver ,当前Chrome版本可以从 chrome://settings/help 查看。
将之安装在一个环境变量目录里(或新配置) 如 $JAVA_HOME/bin 下。如果不放到环境变量目录里,则须要在代码中指定这个驱动文件的路径。


3.Firefox+Selenium

首先本地安装正常的Firefox浏览器。然后在 https://github.com/mozilla/geckodriver/releases 下载一个无头驱动geckodriver,将之安装在一个环境变量目录里(或新配置)。


4.Pyppeteer

selenium的保护机制不允许跨域cookies保存。以及登录的时候必须先打开网页,然后加载cookies,再刷新,这种方式很不友好。并且有些网页会检测到是否是使用了selenium。
Puppeteer是Chrome开发团队在2017年发布的一个Node.js包,用来模拟Chrome浏览器,可以无头方式运行,https://github.com/puppeteer/puppeteer
Pyppeteer是Puppeteer的Python移植,API跟JavaScript版本基本一致。
pip3 install pyppeteer -i https://pypi.douban.com/simple/
Pyppeteer通常和异步库asyncio合作使用。



其它动态抓取页面的技术:
dryscrape、PythonWebkit、PyWebKitGit、Pygt、pyjamas、Playwright,核心是开源的浏览器引擎WebKit。


-end

承接App定制、企业web站点、办公系统软件 设计开发,外包项目,毕设