selenium+phantomjs爬取动态页面数据
Posted
tags:
篇首语:本文由小常识网(cha138.com)小编为大家整理,主要介绍了selenium+phantomjs爬取动态页面数据相关的知识,希望对你有一定的参考价值。
1.安装selenium
pip/pip3 install selenium
注意依赖关系
2.phantomjs for windows
下载地址:http://phantomjs.org/download.html
phantomjs-2.1.1-windows 仅支持64位系统
phantomjs-1.9.7-windows 支持32位系统,更早的版本没测试过
把下载好的安装包bin目录下的phantomjs.exe文件拷贝到python安装目录下的Scripts目录下
3.模拟浏览器操作
导入模块
from selenium import webdriver
访问页面
wb = webdriver.PhantomJS() url = "http://www.test.com" wb.get(url)
登录
wb.find_element_by_name("username").send_keys("user") wb.find_element_by_name("password").send_keys("123456") wb.find_element_by_name("submit").click()
框架/窗口跳转
wb.switch_to.frame(‘frame_name‘) wb.switch_to.window(‘window_name‘)
页面截图
wb.get_screenshot_as_file("D:\\\\test.jpg")
html解析_元素定位
页面上需要鼠标点选的各种元素可以通过元素定位使用click方法激活
选择下拉列表的选项
from selenium.webdriver.support.select import Select Select(wb.find_element_by_name("colour")).select_by_visible_text(‘red‘)
刷新页面
wb.refresh()
关闭页面
wb.close()
4.特点
介于JS、H5的趋势,大部分网站都是混入了JS数据加载,数据是延迟加载的。我们需要让网页JS渲染数据加载完全了,再开始解析。使用第三方库比较简单,但要牺牲一些效率。selenium就像一个大容器,里面放着phantomjs来实现JS的渲染,我们可以直接操作selenium的api。
5.注意事项
使用pyinstaller打包时,如果使用“-F”选项打包成独立文件,selenium库将会加载失败。打包完成后要将phantomjs.exe文件拷贝到打包生产的exe文件的所在目录。
以上是关于selenium+phantomjs爬取动态页面数据的主要内容,如果未能解决你的问题,请参考以下文章
python+selenium+PhantomJS爬取网页动态加载内容
如何用python+selenium+phantomjs获得一个网页的动态生成的html代码