数据采集及采集工具八爪鱼的使用
一个数据的走势是由多个维度影响的,因此我们需要通过多源的数据采集,尽可能收集到更多的数据维度,公司保证数据质量,才能得到高质量的数据挖掘结果。
数据源分类:
- 开放数据源:政府、企业、高校等
- 爬虫获取: 页、APP等
- 日志收集:前端采集、后端脚本等
- 传感器:图像、测速、热敏等
开放数据源:
- 可以从两个维度来考虑,一个是单位的维度,比如政府、企业、高校;一个就是行业维度,比如交通、金融、能源等领域。
爬虫获取:
-
Python爬虫三个过程:
- 使用requests爬取内容,可以用其来抓取 页信息。
- 使用xpath解析内容。XPath是一种用来确定 XML 文档中某部分位置的语言,在开发中经常用来当作小型查询语言。XPath可以通过元素和属性进行位置索引。
- 使用 Pandas 保存数据。pandas可以保存爬取的数据写入到xls或MySQL等数据库中。
-
常用 页信息抓取工具:
-
[火车采集器]http://www.locoy.com/
-
[八爪鱼]https://www.bazhuayu.com/
-
[集搜客]http://www.gooseeker.com/index.html
-
日志采集:
- 日志采集最大的作用,就是通过分析用户访问情况,提升系统的性能,从而提高系统承载量。及时发现系统承载瓶颈,也可以方便技术人员基于用户实际的访问情况进行优化。
- 日志采集可分为两种形式:
- 通过web服务器采集
- 自定义采集用户行为
- 埋点是日志采集的关键步骤,其是在有需要的位置采集相应的信息进行上 。
- 在需要统计数据的地方植入统计代码。
- 有助于了解用户的操作数据,适用于运维监控、安全审计、业务数据分析等场景。
- 一般web服务器自带日志功能,也可以使用flume从不同服务器集群中采集、汇总和传输大容量的日志数据。
采集用具八爪鱼的使用:
- 八爪鱼采集分为三步:
- 输入 页
- 设计流程
- 启动采集
-
流程步骤可分为基本步骤和高级步骤
-
基本步骤分别是打开 页、点击元素、循环翻页、提取数据
- 打开 页:所有的采集默认第一项都是打开 页,在新建任务并输入 址后,八爪鱼会自动建立一个打开 页流程。
- 点击元素:这里元素的定义比较广泛,它可以是某个按钮,或者某个链接,也或者是某个图片或文字。使用这个步骤是你在搜索或者提交某个请求。当你点击元素后,八爪鱼会提示你想要达到的目的:点击该按钮、采集该元素文本、还是鼠标移到该链接上。然后再选择“点击该按钮”进行确认即可。如果我们点击某个元素的目的是循环翻页,或者提取数据,那么在点击之后,八爪鱼会确认你的目的,你只要点击相关的按钮即可。
- 循环翻页:很多数据都存在翻页的情况,通常你需要找到翻页的位置,比如 页底部的“下一页”按钮,点击它,会提示你“循环点击下一页”、“采集该链接文本”还是“点击该链接”。你需要确认这里是进行的“循环点击下一页”。
- 提取数据:在 页上选择你想要提取的页面范围,鼠标移动到页面上会呈现蓝色的阴影面积,它表明了你想提取的数据范围。然后点击鼠标后,在右侧选择“采集数据”即可。
-
高级步骤包括输入文字、验证码识别、下拉选项、判断条件、移动鼠标到元素上、结束循环、结束流程
Python爬虫流程:打开 页、提取数据和保存数据。
-
打开 页:可以使用Requests 访问页面,得到服务器返回数据,包括HTML及json。
-
提取数据:对于HTML,可使用xpath进行元素定位提取数据。
? 对于json,可使用json进行解析。
-
保存数据:可使用pandas保存数据并导出csv文件。
Requests访问页面:
-
Requests是Python HTTP的客户端库,有两种访问方式:Get和Post。Get把参数包含在url中,Post通过request body来传递参数。
-
Get访问
r为get请求后的访问结果,通过r.text或r.content可获取HTML正文。
-
Post表单传递
xpath定位:
-
其可通过元素和属性来定位位置。
-
常用路径表达方式:
表达式 含义 node 选node节点的所有子节点 / 从根节点选取 // 选取所有的当前节点,不考虑位置 . 当前节点 … 父节点 @ 属性选择 | 或,两个节点的合计 text() 当前路径下的文本内容 -
定位HTML所有列表项目:
json对象:
利用JSON库可以完成Python对象与json对象之间的转换。
json.dumps() 将Python对象转换成json对象
json.loads() 将json对象转换成Python对象

声明:本站部分文章及图片源自用户投稿,如本站任何资料有侵权请您尽早请联系jinwei@zod.com.cn进行处理,非常感谢!