快速设计爬虫,有点像的原理是怎样的?(上)

优采云 发布时间: 2021-08-12 22:01

  快速设计爬虫,有点像的原理是怎样的?(上)

  互联网是一个大网络,采集data的小程序可以形象地称为爬虫或蜘蛛。

  爬虫的原理很简单。当我们访问一个网页时,我们会点击翻页按钮和超链接,浏览器会帮我们请求所有的资源和图片。所以,你可以设计一个可以在浏览器上模拟人为操作的程序,让网站误认为爬虫是普通访问者,它会乖乖的发回需要的数据。

  爬虫有两种,一种是搜索引擎爬虫,像百度一样什么都抓(黑色)。另一个是开发,只精准抓取需要的内容:比如我只需要二手房信息,不想旁边有广告和新闻。

  爬虫这个名字不好听,所以我给这个软件取名Hawk,指的是“鹰”,可以准确快速的捕捉猎物。基本不需要编程,通过图形化拖拽操作可以快速设计爬虫,有点像Photoshop。 20分钟就可以为大众点评写一个爬虫(简化版只需要3分钟),然后就让它跑起来。

  以下是使用Hawk拍摄二手房的视频。建议在wifi环境下观看:

  自动将网页导出到 Excel

  那么,如果一个页面这么大,爬虫怎么知道我想要什么?

  

  当然,人们很容易看到上图中的红框是二手房信息,但机器并不知道。

  网页是一棵结构化的树,重要信息所在的节点往往是繁茂的。打个不恰当的类比,当一族子孙形成树状家谱时,谁最强?当然是:

  大家都会觉得这个家族太强大了!

  当我们对整个树结构进行评分时,自然可以找到最强大的节点,这就是我们想要的表。找到最好的爹地后,儿子虽然长得都差不多:高大帅气,两条胳膊两条腿,这些都是共同的特征,没有多少资料。我们关心的是特征。大儿子锥子的脸和其他人不一样,那张脸是重要的信息;三儿子最有钱——钱也是我们关心的。因此,通过比较儿子的不同属性,我们可以知道哪些信息是重要的。

  回到网页采集这个例子,通过一组有趣的算法,给出一个网页地址,软件会自动转换成Excel! (不明白,你不明白吗?正常情况下,不要在意这个。细节!)

  ◆◆ ◆

  破解翻页限制

  获取一页的数据是不够的,我们要获取所有页面的数据!很简单,让程序依次请求第1页和第2页……数据采集

  有那么简单吗? 网站你怎么能让你的宝贵数据这么容易被拿走?所以只能翻到第50页或第100页。Chain Home是这样的:

  

  这也不打扰我们。每页有30条数据,100页最多可显示3000条数据。北京16个区县有2万个社区,但每个区的社区数量不到3000个。我们可以分别获取每个区的社区列表。每个社区最多有300多套二手房在售,可以买到链家所有的二手房。

  然后我们启动抓取器,Hawk会为每个子线程分配任务(可以理解为机器人):帮我抓取这个社区所有的二手房!然后你会看到一个壮观的场景:一群小机器人协同工作,从网站搬运数据,有没有超级牛迅雷?同时执行 100 个任务! !我从厕所回来的时候会抓住它! ! !

  

  ◆◆ ◆

  清理:识别和转换内容

  得到的数据如下:

  

  但是正如您将看到的,其中有一些奇怪的字符应该删除。 xx 平方米应该是所有提取的数字。还有售价,有的213万元,有的373万元,这些都很难对付。

  但是,没关系! Hawk 可以自动识别所有数据:

  哈哈,那你就可以用这些数据轻松分析了,纯净无污染!

  ◆◆ ◆

  网站需要登录才能破解

  当然,这里的意思不是破解用户名和密码,还不够强。部分网站数据需要登录才能访问。这不会打扰我们。

  当你打开Hawk内置的嗅探功能时,Hawk就像一个记录器,会记录你对目标网站的访问。之后,它会重新播放以实现自动登录。

  您是否担心 Hawk 会保存您的用户名和密码?如何自动登录而不保存?但是 Hawk 是开源的,所有代码都经过审查并且是安全的。您的私人信息只会保存在您自己的硬盘中。

  

  (我们是这样自动登录到大众点评的)

  ◆◆ ◆

  我也可以采集数据吗

  理论上是的。但路高一尺,魔鬼高一尺。不同的网站千万不同,对抗爬虫的技巧有很多种。而且这些错误对细节非常敏感。只要你犯了一个错误,接下来的步骤可能不会继续。

  我该怎么办?沙漠先生保存并分享了之前的操作,只需加载这些文件即可快速获取数据。

  如果你有其他网站采集需求,可以找你身边的程序员和同学,请他们帮忙采集数据,或者让他们试试Hawk,看看谁的效率更高。

  如果你是文科生,我建议你看看东野圭吾和村上春树。直接使用这么复杂的软件会让人抓狂的。那么我应该打电话给谁来帮助捕获数据?呵呵呵……

  ◆◆ ◆

  从哪里可以获得软件和教程?

  Hawk:用 C#/WPF 编写的高级爬虫和 ETL 工具软件介绍

  HAWK 是一个数据采集 和清理工具。它是根据 GPL 协议开源的。可以灵活有效地采集来自网页、数据库、文件,通过可视化拖拽快速生成、过滤、转换。等等。其功能最适合的领域是爬虫和数据清洗。

  Hawk 的意思是“鹰”,可以有效准确地杀死猎物。

  HAWK采用C#编写,前端界面采用WPF开发,支持插件扩展。通过图形化操作,快速建立解决方案。

  GitHub 地址:

  Python 等效实现是 etlpy:

  作者专门开发的项目文件已在GitHub上发布:

  使用时点击文件加载项目即可加载。

  如果不想编译,可执行文件在:

  密码:4iy0

  编译路径为:Hawk.Core\Hawk.Core.sln

  国内一站式数据智能分析平台ETHINK提供本文

0 个评论

要回复文章请先登录注册


官方客服QQ群

微信人工客服

QQ人工客服


线