Python数据采集Selenium、PantomJS浅谈
專 欄
❈
yea yee,Python中文社区专栏作者,python三年,独立开发者,擅长flask,mongodb,pandas,bokeh,熟悉sklearn,pytorch。知乎专栏数据分析可视化,自带一波土木领域跨界python爱好者。独立开发网站http://intumu.com,微信小程序沁香农,海豹战队,数据分析文章若干。
Python中文社区招募2017年秋季专栏作者啦!申请邮件请按以下格式填好后发送至邮箱:pythonpost@163.com
- 邮件标题:申请Python中文社区专栏作者
- 个人简介:姓名或昵称,以及简单的自我介绍,涵盖个人的擅长领域等。
- 写作能力的证明:请附个人与Python相关原创文章的链接,或者个人博客、知乎、简书地址等。
- 您的联系方式:请附个人微信ID等。
❈
一直以来我觉得用在运维的Selenium、PantomJS是一个重器,不到万不得已的时候不要祭出这个大杀器,但是涉及到JavaScript及Ajax渲染的时候,Requests就完全懵逼了!最近回过头来重新审视这货,这个重器用反倒轻便了很多。
1.安装Selenium、PantomJS
Selenium可以直接通过pip安装,PantomJS则时一个exe可执行文件,需要下载解压。在使用的时候指定exe的绝对路径即可。
2.Selenium、PantomJS基本设置
3.Selenium、PantomJS基本操作
如果你的网络和机子足够好,基本上就不用等待网页渲染,
否则,还需要等待,如果用time.sleep(),则有点笨拙,
或者用
其他driver内置函数,可以通过查看源代码或者在pycharm提示获取。
4.Xpath定位Html标签
其中element方法定位到是是单数,是直接定位到元素;elements方法是复数,这个学过英文的都知道,定位到的是一组元素,返回的是list队列。可参照Re函数中的findall理解。
5.完整例子
这个例子属于标准化操作,在实际中可以适当简化,并结合上面的Xpath定位完成。
- MySQL主从复制的实现过程
- 使用dict和set
- 区块链技术(二):以太坊编程语言Solidity安装及入门初体验
- SQL注入测试神器sqlmap
- 人工智能也分强与弱?
- 【Scikit-Learn 中文文档】集成方法 - 监督学习 - 用户指南 | ApacheCN
- 2017黑科技 颠覆生活哪家强?
- ASP.NET Core中的依赖注入(5): ServiceProvider实现揭秘 【解读ServiceCallSite 】
- ASP.NET MVC的View是如何呈现出来的[实例篇]
- 把人类向机器人乞讨,变成对机器人征税
- 印度6大科技真相 会让很多人大吃一惊
- 了解ASP.NET MVC几种ActionResult的本质:HttpStatusCodeResult & RedirectResult/RedirectToRouteResult
- Python原创0基础入门一看几张图就学会了
- ASP.NET Core中的依赖注入(5):ServicePrvider实现揭秘【补充漏掉的细节】
- JavaScript 教程
- JavaScript 编辑工具
- JavaScript 与HTML
- JavaScript 与Java
- JavaScript 数据结构
- JavaScript 基本数据类型
- JavaScript 特殊数据类型
- JavaScript 运算符
- JavaScript typeof 运算符
- JavaScript 表达式
- JavaScript 类型转换
- JavaScript 基本语法
- JavaScript 注释
- Javascript 基本处理流程
- Javascript 选择结构
- Javascript if 语句
- Javascript if 语句的嵌套
- Javascript switch 语句
- Javascript 循环结构
- Javascript 循环结构实例
- Javascript 跳转语句
- Javascript 控制语句总结
- Javascript 函数介绍
- Javascript 函数的定义
- Javascript 函数调用
- Javascript 几种特殊的函数
- JavaScript 内置函数简介
- Javascript eval() 函数
- Javascript isFinite() 函数
- Javascript isNaN() 函数
- parseInt() 与 parseFloat()
- escape() 与 unescape()
- Javascript 字符串介绍
- Javascript length属性
- javascript 字符串函数
- Javascript 日期对象简介
- Javascript 日期对象用途
- Date 对象属性和方法
- Javascript 数组是什么
- Javascript 创建数组
- Javascript 数组赋值与取值
- Javascript 数组属性和方法
- PHP多文件上传格式化
- NDK开发案例 | C/C++调用java层代码
- 深入理解 SecurityConfigurer 【源码篇】
- Swift 属性
- Swift 类和结构体
- 使用深度学习和OpenCV的早期火灾检测系统
- 【时序预测】一文梳理时间序列预测——ARMA模型
- 三分钟Kubernetes-环境搭建篇
- Linux分区页框分配器之水位
- 使用GPU训练模型
- Spring事务源码分析专题(一)JdbcTemplate使用及源码分析
- TensorFlow处理运动想象分类任务
- 使用kepler.gl可视化地理空间数据
- 聊聊 Python 代码覆盖率工具 - Coverage
- 目标检测模型YOLO-V1损失函数详解