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. Exchange的AutoDiscover服务

    最近工作中涉及到Exchange的AutoDiscover服务,最初想学习后输出一个博客文章.但是最后是找到一篇中文博客文章已经非常清楚的解释了这个问题,如下: http://didda.blog.5 ...

  2. liunx之:解决liunx下dns配置重启失效的问题

    有时候能ping同ip地址,却ping不通域名,这就是dns没有配置的缘故. 但是DNS配置文件 /etc/resolv.conf 每次重启就会失效. 打开这个配置文件,发现有注释提示: Dynami ...

  3. relocation 错误

    icc test/train/test_lm2.o -shared -lpthread -ldl ./lib/liblm2.a -o liblm2.so ld: ./lib/liblm2.a(cJSO ...

  4. u-boot-2010.09移植(B)

    前面我们的u-boot只是在内存中运行,要想在nandflash中运行,以达到开机自启的目的,还需作如下修改 一.添加DM9000网卡支持 1.修改board/fl2440/fl2440.c中的boa ...

  5. HTTP head 详解 (转)

    HTTP(HyperTextTransferProtocol)是超文本传输协议的缩写,它用于传送WWW方式的数据,关于HTTP协议的详细内 容请参考RFC2616.HTTP协议采用了请求/响应模型.客 ...

  6. Mysql 日志 (转)

    MySQL日志: 主要包含:错误日志.查询日志.慢查询日志.事务日志.二进制日志: 错误日志 在mysql数据库中,错误日志功能是默认开启的.并且,错误日志无法被禁止.默认情况下,错误日志存储在mys ...

  7. Android应用开发-数据存储和界面展现(一)(重制版)

    常见布局 相对布局(RelativeLayout) 相对布局下控件默认位置都是左上角(左对齐.顶部对齐父元素),控件之间可以重叠 可以相对于父元素上下左右对齐,相对于父元素水平居中.竖直居中.水平竖直 ...

  8. An invalid character [32] was present in the Cookie value

    系统安装Tomcat版本为:tomcat8,登录时报错"An invalid character [32] was present in the Cookie value" 处理方 ...

  9. [综] Sparse Representation 稀疏表示 压缩感知

    稀疏表示 分为 2个过程:1. 获得字典(训练优化字典:直接给出字典),其中字典学习又分为2个步骤:Sparse Coding和Dictionary Update:2. 用得到超完备字典后,对测试数据 ...

  10. nginx下rewrite参数超过9个的解决方法

    nginx 在处理多于9个参数的时候,是采用重命名的方法来实现的: /?m?([0-9,]*)h?(\d*)a?([0-9,]*)c?(\d*)s?(x?f?(?P<f>[0-9,]*)/ ...