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爬取动态页面数据的更多相关文章

  1. selenium + PhantomJS 爬取js页面

    from selenium import webdriver import time _url="http://xxxxxxxx.com" driver = webdriver.P ...

  2. selenium自动化测试爬取动态页面大全

    目录 一:浏览器信息测试 二:查找结点 三:测试动作 四:获取节点信息 五:切换子页面Frame 六,延时请求 七:前进和后退 八:Cookies 八:选项卡处理 九:捕获异常   这里之讲解用法,安 ...

  3. Python3.x:Selenium+PhantomJS爬取带Ajax、Js的网页

    Python3.x:Selenium+PhantomJS爬取带Ajax.Js的网页 前言 现在很多网站的都大量使用JavaScript,或者使用了Ajax技术.这样在网页加载完成后,url虽然不改变但 ...

  4. selenium+phantomjs爬取京东商品信息

    selenium+phantomjs爬取京东商品信息 今天自己实战写了个爬取京东商品信息,和上一篇的思路一样,附上链接:https://www.cnblogs.com/cany/p/10897618. ...

  5. selenium+phantomjs爬取bilibili

    selenium+phantomjs爬取bilibili 首先我们要下载phantomjs 你可以到 http://phantomjs.org/download.html 这里去下载 下载完之后解压到 ...

  6. phantomjs+selenium实现爬取动态网址

    之前使用 selenium + firefox驱动浏览器来实现爬取动态网址,但是firefox经常更新,更新后时常会导致webdriver启动不来,所以改用phantomjs+selenium来改善一 ...

  7. Python 爬虫实例(8)—— 爬取 动态页面

    今天使用python 和selenium爬取动态数据,主要是通过不停的更新页面,实现数据的爬取,要爬取的数据如下图 源代码: #-*-coding:utf-8-*- import time from ...

  8. 爬虫 selenium+Xpath 爬取动态js页面元素内容

    介绍 selenium最初是一个自动化测试工具,而爬虫中使用它主要是为了解决requests无法直接执行JavaScript代码的问题 selenium本质是通过驱动浏览器,完全模拟浏览器的操作,比如 ...

  9. python+selenium+PhantomJS爬取网页动态加载内容

    一般我们使用python的第三方库requests及框架scrapy来爬取网上的资源,但是设计javascript渲染的页面却不能抓取,此时,我们使用web自动化测试化工具Selenium+无界面浏览 ...

随机推荐

  1. 2016HUAS_ACM暑假集训4C - 递推

    题目大意:给你一个高为n ,宽为m列的网格,计算出这个网格中有多少个矩形. 这里我们可以这样看: 对于行:假如是m单位长度,则长度为1的矩形有m个,长度为2的矩形有m-1个......长度为m的只有1 ...

  2. 关于C语言的一些trick

    很多东西已经记不起来了,想到一点写一点,碰到一点写一点,慢慢累积. 关于# #在宏定义中用于替换传入变量的字符,例如: #define whole_operation(n)  do { printf( ...

  3. (转) Deep Learning Resources

    转自:http://www.jeremydjacksonphd.com/category/deep-learning/ Deep Learning Resources Posted on May 13 ...

  4. linux下shell编写九九乘法表

    主要语法:类似    1x2       echo   $((1*2)) for 变量 in 值1 值2 值3 ;do linux命令或者语句done

  5. 【转】error while loading shared libraries: libevent-2.0.so.5: cannot open shared object file: No such file or directory

    错误信息: /usr/local/memcacheq/bin/memcacheq: error while loading shared libraries: libevent-2.0.so.5: c ...

  6. Javascript模式(第二章基本技巧)------读书笔记

    本章主要帮助大家写出高质量的JS代码的方法,模式和习惯,例如:避免使用全局变量,使用单个的var变量声明,缓存for循环的长度变量length等 一.尽量避免使用全局变量 1 每一个js环境都有一个全 ...

  7. resizable.js

    (function($){ var boundbar= { html:"<div class=\"boundbar\" style=\"overflow: ...

  8. 【sql】之查询昨天的记录

    http://blog.csdn.net/cangchen/article/details/44978531

  9. C语言函数指针实验

    上次看Atmel的示例工程,发现人家使用了函数指针的结构体(函数指针结构体).感叹人家的C语言功夫审核,自己费劲还是只能读懂的份.不过,函数指针确实好用.今天就试试这个超牛的东西.Now let's ...

  10. SparkConf加载与SparkContext创建(源码阅读二)

    紧接着昨天,我们继续开搞了啊.. 1.下面,开始创建BroadcastManager,就是传说中的广播变量管理器.BroadcastManager用于将配置信息和序列化后的RDD.Job以及Shuff ...