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(") 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爬取动态页面数据的更多相关文章
- selenium + PhantomJS 爬取js页面
from selenium import webdriver import time _url="http://xxxxxxxx.com" driver = webdriver.P ...
- selenium自动化测试爬取动态页面大全
目录 一:浏览器信息测试 二:查找结点 三:测试动作 四:获取节点信息 五:切换子页面Frame 六,延时请求 七:前进和后退 八:Cookies 八:选项卡处理 九:捕获异常 这里之讲解用法,安 ...
- Python3.x:Selenium+PhantomJS爬取带Ajax、Js的网页
Python3.x:Selenium+PhantomJS爬取带Ajax.Js的网页 前言 现在很多网站的都大量使用JavaScript,或者使用了Ajax技术.这样在网页加载完成后,url虽然不改变但 ...
- selenium+phantomjs爬取京东商品信息
selenium+phantomjs爬取京东商品信息 今天自己实战写了个爬取京东商品信息,和上一篇的思路一样,附上链接:https://www.cnblogs.com/cany/p/10897618. ...
- selenium+phantomjs爬取bilibili
selenium+phantomjs爬取bilibili 首先我们要下载phantomjs 你可以到 http://phantomjs.org/download.html 这里去下载 下载完之后解压到 ...
- phantomjs+selenium实现爬取动态网址
之前使用 selenium + firefox驱动浏览器来实现爬取动态网址,但是firefox经常更新,更新后时常会导致webdriver启动不来,所以改用phantomjs+selenium来改善一 ...
- Python 爬虫实例(8)—— 爬取 动态页面
今天使用python 和selenium爬取动态数据,主要是通过不停的更新页面,实现数据的爬取,要爬取的数据如下图 源代码: #-*-coding:utf-8-*- import time from ...
- 爬虫 selenium+Xpath 爬取动态js页面元素内容
介绍 selenium最初是一个自动化测试工具,而爬虫中使用它主要是为了解决requests无法直接执行JavaScript代码的问题 selenium本质是通过驱动浏览器,完全模拟浏览器的操作,比如 ...
- python+selenium+PhantomJS爬取网页动态加载内容
一般我们使用python的第三方库requests及框架scrapy来爬取网上的资源,但是设计javascript渲染的页面却不能抓取,此时,我们使用web自动化测试化工具Selenium+无界面浏览 ...
随机推荐
- JSBinding / Testing
Unity version compatibilities 5.3.5 5.2.0 5.1.5 5.0.4 4.7.2 4.7.0 4.6.9 4.6.0 4.5.5 Platform compati ...
- Nginx-Lua模块的执行顺序
一.nginx执行步骤 nginx在处理每一个用户请求时,都是按照若干个不同的阶段依次处理的,与配置文件上的顺序没有关系,详细内容可以阅读<深入理解nginx:模块开发与架构解析>这本书, ...
- linux显示器常见设置
1. 设置系统默认的分辨率 xrandr 命令: > xrandr Screen 0: minimum 1 x 1, current 1920 x 1080, maximum 8192 x 8 ...
- winform中固定界面大小的方法
Step1: MaximizeBox : False MinimizeBox : False Step2: FormBoarderStyle : FixedSingle
- memcache/memcached安装教程并应用Tinkphp3.2
在自己的新程序中打算全面应用memcached技术,这个很容易理解这是memcached是内存缓存,但是怎么还有memcache呢?其实很简单,memcache是php的一个扩展,用于php管理mem ...
- 编写一个Singleton程序(单例)
public class Test { private static Test test = new Test(); private Test(){}//构造方法私有化 private static ...
- Django值Cookie基础
一.什么是Cookie? Cookies就是服务器暂时存放在你的电脑里的资料(.txt格式的文本文件),好让服务器用来辨认你的计算机.当你在浏览网站的时候,Web服务器会先送一小小资料放在你的计算机上 ...
- mysql开启登录日志和sql日志 排查错误
首先看是否开启了日志 show global variables like '%general%'; set global general_log = on; // 打开 set global gen ...
- WebService异常时,查看请求状态码方法
/// <summary> /// Test 的摘要说明 /// </summary> [WebService(Namespace = "http://tempuri ...
- ruby 生成有条件限制的随机数
#conding:utf-8 #生成只有数字的随机码可控制长度def random_int(len) newpass = "" 1.upto(len){ |i| newpass & ...