1.3 数据采集
如何自动化采集数据
一个数据的走势,是由多个维度影响的,所以需要通过多源的数据采集,收集到尽可能多的数据维度,同时保证数据的质量,这样才能得到高质量的数据挖掘结果。
数据源:
- 开放数据源:针对行业的数据库,例如人口信息,地区分布和教育情况,旅游、交通等。
- 爬虫抓取(网页、App):指定网站数据,例如购物网的上的购物评价。
- 日志采集(前端采集、后端脚本):统计用户的操作。可以前端埋点,后端进行脚本收集,来分析网站的访问情况。
- 传感器(图像、测速、热敏):采集物理信息。
1. 开放数据源
- 单位维度(政府、企业、高校)
- 行业维度(交通、金融、能源等领域)
2.使用爬虫
python爬虫经历的三个过程:
- 抓取网页信息(使用 request 爬取内容)
- 获取想要的信息(使用 XPath 解析内容)
- 保存数据(使用 Pandas 保存爬取的数据,再通过 Pandas 写入 XLS 或 MySQL 等数据库中)。
Selenium + PhantomeJS,Puppteteer
使用其他工具抓取数据:
- 火车采集器
- 八爪鱼 (有云采集(付费))
- 集搜课
3.日志采集
作用:
通过分析用户的访问情况,提升系统的性能,从而提高系统的承载量。及时发现系统承载瓶颈,也可以方便技术人员基于用户实际的访问情况进行优化。
记录的信息:
- 谁:用户的IP,用户代理
- 什么时候:访问时间,HTTP请求时间?
- 通过什么渠道:搜索引擎或者网址输入
- 做了什么:执行的操作
- 是否有异常:系统是否产生错误
日志采集的形式:
- 通过 Web 服务器采集 ( httpd,Nginx,Tomcat 自带日志记录功能;其他:?Hadoop 的 Chukwa Cloudera 的 Flume Facebook 的 Scribe 等,这些工具均采用分布式架构,能够满足每秒数百 MB 的日志数据采集和传输需求。)
- 自定义采集用户行为 (JS代码监听用户的行为,AJAX异步请求后台记录日志)
埋点是什么?
埋点就是在有需要的位置采集相应的信息,进行上报。比如某页面的访问情况,包括用户信息 设备信息;或者用户在页面上的操作行为,包括时间长短等。
》》》》》其他及思考题。。。未
实战1:使用八爪鱼采集微博上的 "D&G" 评论
实战2:自动化下载王祖贤海报
XPath 定位
| 表达式 | 含义 |
|---|---|
| node | 选node节点的所有子节点 |
| / | 从根节点选取 |
| // | 选取所有的当前节点 |
| . | 当前节点 |
| .. | 父节点 |
| @ | 属性选择 |
| 或,两个节点的合集 | |
| text() | 当前路径的文本内容 |
- 选择 node 节点的所有节点
xpath('node') - 回到上一个节点
xpath('...') - 所有book元素,且book元素拥有id="abc"的属性。
xpath('//book[@id="abc"]) - 选取book元素的所有 title 和 price 元素。
xpath('//book/title|//book/price')

浙公网安备 33010602011771号