码迷,mamicode.com
首页 > Web开发 > 详细

selenium+phantomjs爬取动态页面数据

时间:2016-11-02 00:02:55      阅读:353      评论:0      收藏:0      [点我收藏+]

标签:script   ges   文件   元素   nbsp   password   log   延迟   tar   

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爬取动态页面数据

标签:script   ges   文件   元素   nbsp   password   log   延迟   tar   

原文地址:http://www.cnblogs.com/chromecs/p/6021222.html

(0)
(0)
   
举报
评论 一句话评论(0
登录后才能评论!
© 2014 mamicode.com 版权所有  联系我们:gaon5@hotmail.com
迷上了代码!