前往小程序,Get更优阅读体验!
立即前往
首页
学习
活动
专区
工具
TVP
发布
社区首页 >专栏 >想实现全网数据的清洗与聚合?从爬虫做起

想实现全网数据的清洗与聚合?从爬虫做起

作者头像
羽翰尘
修改2019-11-26 15:59:13
8790
修改2019-11-26 15:59:13
举报
文章被收录于专栏:技术向技术向

本文由腾讯云+社区自动同步,原文地址 http://blogtest.stackoverflow.club/96/

实现资源聚合的必要性

试着去搜索网络上数据有多少,但是没有明确的结果。但是我们可以明确感受到由于互联网的快速发展,每天新产生的内容也越来越多,这其中我们真正需要的,也就1%或者更少。其余的时间,我们都暴露在各类媒体的“推荐”或者“智能算法”之下。

那么如何把属于自己的时间夺回来,又不会“两耳不听窗外事,一心只读圣贤书”呢?一个技术上可实现的路径就是实现数据的清洗与聚合。或许表达不够准确,但目的是相似的——去掉目标事件的重复内容,将剩下的内容按需呈现。

在过去,我们如果被“如何解决win10的自动更新”困扰,不同的搜索引擎会给出很多结果。

但是我们都明白,能够适配你电脑的解决方案只有那么一两个。所以你要一个答案一个答案地试,一直到解决问题为止。

那如果你碰到是更复杂的问题呢?我希望有这么一个聚合平台充当“人肉搜索引擎”,她在看遍了所有内容后,确定我的环境,随后直接给出一个答案,而且这个答案还是正确的。进而,与当前的AI助手结合,提供每日简报,以及决策支持。

爬虫是实现聚合的第一步

目前碰到的技术问题大多都是在博客上得到解决的,所以数据也要从博客爬起,我选择的第一个博客平台是CSDN。

首先梳理下爬虫的逻辑。很简单,第一个爬虫不需要太高深的知识。我们就是模拟一个浏览器的数据请求,把网页下载下来;构建一个正则表达式,把有用的文字抽取出来;打开一个文件,把文字写进去。

先验知识

CSDN的页面是有规律的。

首先,知道作者ID就可以构造出文章列表,结构为prefix + id + /article/list/ + list_number. 注意文章列表的下一页标签是js动态生成的,可以顺序增加list_number, 直到返回404错误,表明文章列表结束,避开执行js。

其次,关键词、文章ID、文章内容使用的html标签都一致,便于爬取。

数据请求

请求一个网页数据是很简单的。我们这是使用的是socket和urlib两个模块,注意先import

进来,并且urllib直接导入request类,即import urllib.request as request.

设置header之后传入Request,随后使用urlopen方法打开一个网络链接,之后再调用read方法读取页面内容。当然,这里有些异常处理流程,只是做了错误原因输出,并没有实现从故障中恢复。

数据有效内容提取

正则表达式是最基础也最强大的工具。首先import re, 然后使用compile方法与findall方法。

这里的正则表达式使用.去匹配任意除换行符之外的任意字符;用(.)去返回我们想要的数据。

数据存储

在使用类似方法得到文章id、关键词、是否原创、标题之后,把正文部分作为单独文件写入到磁盘,把文章的属性信息与对应的磁盘文件名写入到config.json文件。每一个作者id对应一个config.json文件,方便后期自动化处理。

结果

本次爬取测试后共抓取1W博文 ,后期的深入方向是内容去重,优化方向是自动化爬虫(如自动获取用户ID、异常自动修复实现7x24h运行、云端部署、爬取图片)。

注:本文只是分享idea,并展示测试成果,详细的指导请求助于教程类网站。

本文参与 腾讯云自媒体分享计划,分享自作者个人站点/博客。
原始发表:2018-08-05,如有侵权请联系 cloudcommunity@tencent.com 删除

本文分享自 作者个人站点/博客 前往查看

如有侵权,请联系 cloudcommunity@tencent.com 删除。

本文参与 腾讯云自媒体分享计划  ,欢迎热爱写作的你一起参与!

评论
登录后参与评论
0 条评论
热度
最新
推荐阅读
目录
  • 实现资源聚合的必要性
  • 爬虫是实现聚合的第一步
  • 先验知识
  • 数据请求
  • 数据有效内容提取
  • 数据存储
  • 结果
相关产品与服务
数据保险箱
数据保险箱(Cloud Data Coffer Service,CDCS)为您提供更高安全系数的企业核心数据存储服务。您可以通过自定义过期天数的方法删除数据,避免误删带来的损害,还可以将数据跨地域存储,防止一些不可抗因素导致的数据丢失。数据保险箱支持通过控制台、API 等多样化方式快速简单接入,实现海量数据的存储管理。您可以使用数据保险箱对文件数据进行上传、下载,最终实现数据的安全存储和提取。
领券
问题归档专栏文章快讯文章归档关键词归档开发者手册归档开发者手册 Section 归档