scrapy分页抓取网页(Crawlab的可配置爬虫只需要爬虫工程师配置一些必要的CSS/XPath提取规则 )

优采云 发布时间: 2021-11-01 05:14

  scrapy分页抓取网页(Crawlab的可配置爬虫只需要爬虫工程师配置一些必要的CSS/XPath提取规则

)

  前言

  开发爬虫是一件很有趣的事情。编写一个程序,向感兴趣的目标网站发起HTTP请求,获取HTML,解析HTML,提取数据,将数据保存到数据库或CSV、JSON等格式,然后使用你熟悉的语言如作为 Python 对这些数据进行分析以生成很酷的图表。这个过程是不是很刺激?

  然而,开发爬虫并不是一件简单的事情。通常,开发一个简单的爬虫往往需要几个模块:下载器、解析器、提取规则和保存模块。用Python实现这个简单的爬虫,至少需要写10-20行代码,如果考虑并发和调度,通常需要写50多行代码。比较麻烦的是,如果要管理多个爬虫实现爬虫工程,需要从每个爬虫代码中提取通用模块和参数。这个过程需要相当的工程经验和时间的积累。其实大体上,主要网站的结构是类似的,只是提取规则需要改变。很多爬虫工程师在大型项目中要写上百条抽取规则,

  可配置爬虫

  幸运的是,Crawlab 在 v0.2.1 版本中添加了一个新的特性可配置爬虫,让工程师从这些重复性工作中解放出来。Crawlab的可配置爬虫只需要爬虫工程师配置一些必要的CSS/XPath提取规则就可以完成常规的爬虫开发。根据作者的实验,对于稍微熟悉 CSS 选择器或 XPath 的工程师来说,使用可配置的爬虫开发一个五脏俱全的常规爬虫只需要 1-3 分钟。

  Crawlab 的可配置爬虫是基于 Scrapy 的,所以天生就是支持并发的。而且,可配置爬虫完全支持Crawlab自定义爬虫的通用功能,因此也支持任务调度、任务监控、日志监控、数据分析。

  安装并运行 Crawlab

  Crawlab是一个专注于爬虫的分布式爬虫管理平台,集成了爬虫管理、任务调度、任务监控、数据分析等模块。非常适合对爬虫管理和爬虫工程有需求的开发者和公司。

  Crawlab的详细介绍请参考之前的文章:-

  下面是Crawlab的安装和运行步骤,大概需要10-20分钟。

  如何开发和运行可配置的爬虫

  现在终于到了爬虫开发时间。这里将以网易24小时排名新闻为例,开发相应的可配置爬虫。整个过程不应超过3分钟。

  添加爬虫

  Crawlab运行后,在浏览器中打开网址:8080,导航到爬虫。单击“添加爬虫”按钮。

  

  单击以配置爬虫。

  

  输入基本信息后,点击添加。

  

  配置爬虫

  添加完成后可以看到底部出现刚刚添加的可配置爬虫,点击查看进入爬虫详情。

  

  单击配置选项卡,进入配置页面。接下来,我们需要配置爬虫规则。

  

  已经有一些配置的初始条目。我们简要介绍每个的含义。

  抓取类别

  这也是爬虫采用的策略,即爬虫如何遍历网页。作为第一个版本,我们只有列表,只有详细信息页面,列表+详细信息页面。- 仅列表页面。这也是最简单的形式。爬虫遍历列表中的列表项并抓取数据。- 仅详细信息页面。爬虫只爬取详情页。-列表+详细信息页面。爬虫首先遍历列表页,提取列表项中的详情页地址,跟进抓取详情页。

  这里我们选择列表+详情页。

  列表项选择器和分页选择器

  列表项和分页按钮的匹配查询通过 CSS 或 XPath 进行匹配。

  起始网址

  爬虫首先遍历的 URL。

  遵守机器人协议

  这是默认启用的。如果开启,爬虫会先抓取网站的robots.txt,判断页面是否可抓取;否则,将无法验证。用户可以选择关闭它。请注意,任何无视机器人协议的行为都有法律风险。

  列出页面字段和详细信息页面字段

  这些是需要在列表页面或详细信息页面上提取的字段。这些字段由 CSS 选择器或 XPath 匹配和提取。您可以选择文本或属性。

  检查目标页面的元素CSS选择器后,我们输入列表项选择器、起始URL、列表页/详情页等信息。请注意,检查 url 是详细信息页面的 URL。

  

  单击保存、预览以查看预览内容。

  

  OK,现在配置完成,终于可以开始运行爬虫了!

  运行爬虫

  您唯一需要做的就是单击运行按钮并确认。点击Overview选项卡,可以看到任务已经开始运行了。

  

  点击创建时间链接,导航到任务详情,点击结果选项卡,可以看到抓取的结果已经保存。

  

  怎么样,这个过程是不是超级简单?如果你熟练,整个过程可以在60秒内完成!就像玩魔方一样,玩得越多,你就越熟练!

  结束语

  本文利用Crawlab的可配置爬虫功能,在3分钟内抓取网易新闻24小时新闻排名。同样的过程可以在其他类似的网站上实现。虽然这是一个经典的“列表+详情页”的爬取模式,比较简单,但是未来我们会开发出越来越复杂的爬取方式来实现更多的爬取需求。Crawlab的可配置爬虫减少了爬虫开发时间,提高了爬虫开发效率,提高了工程水平,让爬虫工程师从日常繁琐的配置工作中解脱出来。配置工作可以交给初级爬虫工程师或外包人员,而高级爬虫工程师将专注于更复杂的爬虫任务,如反爬虫、动态内容、分布式爬虫、

  Github: tikazyq/crawlab

  如果你觉得Crawlab还不错,如果对你的日常工作或业务有帮助,请加作者微信加入开发交流群,大家可以交流一下Crawlab的使用和开发。

  

0 个评论

要回复文章请先登录注册


官方客服QQ群

微信人工客服

QQ人工客服


线