当前位置:AIGC资讯 > 数据采集 > 正文

数据采集及采集工具八爪鱼的使用

数据采集及采集工具八爪鱼的使用

一个数据的走势是由多个维度影响的,因此我们需要通过多源的数据采集,尽可能收集到更多的数据维度,公司保证数据质量,才能得到高质量的数据挖掘结果。

数据源分类:
开放数据源:政府、企业、高校等 爬虫获取:网页、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 = requests.get('http://www.douban.com')

r为get请求后的访问结果,通过r.text或r.content可获取HTML正文。

Post表单传递

r = requests.post('http://xxx.com', data = {'key':'value'})
xpath定位:

其可通过元素和属性来定位位置。

常用路径表达方式:

表达式 含义 node 选node节点的所有子节点 / 从根节点选取 // 选取所有的当前节点,不考虑位置 . 当前节点 … 父节点 @ 属性选择 | 或,两个节点的合计 text() 当前路径下的文本内容

定位HTML所有列表项目:

from lxml import etree
html = etree.HTML(html)
result = html.xpath('//li')
json对象:

利用JSON库可以完成Python对象与json对象之间的转换。

json.dumps() 将Python对象转换成json对象

json.loads() 将json对象转换成Python对象

更新时间 2023-11-08