本文档描述了Scrapy的体系结构及其组件的交互方式。 概述 下图显示了Scrapy体系结构及其组件的概述,以及系统内部发生的数据流的概述(由红色箭头显示)。下面包含组件的简要说明,并提供链接以获取有关它们的更多详细信息。数据流也在下面描述。   数据流 该引擎获得初始请求从抓取 蜘蛛。Scrapy中的数据流由执行引擎控制,如下所示: 该引擎安排在请求 调度程序和要求下一个请求抓取。 该计划返回下一请求的引擎。 该引擎发送请求到 下载器,通过 下载器中间件(见 process_request())。 页面完成下载后, Downloader会生成一个Response(带有该页面)并将其

有时,对于大型网站,最好暂停抓取并稍后恢复。 Scrapy通过提供以下设施支持此功能: 一个调度程序,用于在磁盘上保留计划的请求 重复过滤器,用于保留磁盘上的访问请求 一个扩展,使一些蜘蛛状态(键/值对)在批次之间保持不变 工作目录 要启用持久性支持,您只需通过该设置定义作业目录JOBDIR。该目录将用于存储所有必需的数据以保持单个作业的状态(即蜘蛛运行)。重要的是要注意,这个目录不能由不同的蜘蛛共享,甚至不能由同一个蜘蛛的不同作业/运行共享,因为它意味着用于存储单个作业的状态。 如何使用 要启动支持持久性的蜘蛛,请按以下方式运行: scrapy crawl somespider -s JOB

注意 Google Directory(本指南中使用的示例网站)已不再可用,因为它已被Google关闭。但是,本指南中的概念仍然有效。如果您想更新本指南以使用新的(工作)网站,您的贡献将非常受欢迎!有关 如何操作的信息,请参阅Contributing to Scrapy。 介绍 本文档介绍了如何使用Firebug(一个Firefox附加组件)来使抓取过程更轻松,更有趣。对于其他有用的Firefox附加组件,请参阅 有用的Firefox附加组件以进行抓取。使用Firefox附加组件检查页面有一些注意事项,请参阅使用实时浏览器DOM检查的注意事项。 在此示例中,我们将展示如何使用Firebug从G

以下列出了使用Firefox进行抓取的提示和建议,以及一系列有用的Firefox附加组件,以简化抓取过程。 检查实时浏览器DOM的注意事项 由于Firefox附加组件在实时浏览器DOM上运行,因此在检查页面源时您实际看到的不是原始HTML,而是在应用某些浏览器清理并执行Javascript代码后修改后的HTML。特别是Firefox <tbody>以向表格添加元素而闻名。另一方面,Scrapy不会修改原始页面HTML,因此如果<tbody>在XPath表达式中使用,则无法提取任何数据。 因此,在使用Firefox和XPath时,请注意以下事项: 在检查DOM时,禁用Fi

Scrapy默认值针对特定网站的爬网进行了优化。这些站点通常由单个Scrapy蜘蛛处理,尽管这不是必需的或不需要的(例如,有一些通用蜘蛛可以处理抛出它们的任何给定站点)。 除了这种“集中爬行”之外,还有另一种常见类型的爬网,它覆盖了大量(可能无限制)的域数,并且仅受时间或其他任意约束的限制,而不是在域被爬行到完成时停​​止或当没有更多的请求要执行时。这些被称为“广泛爬行”,是搜索引擎使用的典型爬虫。 这些是广泛爬行中常见的一些常见属性: 他们抓取许多域(通常是无限制的)而不是特定的一组站点 他们不一定要抓取域完成,因为这样做是不切实际的(或不可能的),而是限制爬行的时间或页数爬行 它们在逻辑上

蜘蛛是定义如何抓取某个站点(或一组站点)的类,包括如何执行爬行(即跟随链接)以及如何从其页面中提取结构化数据(即抓取项目)。换句话说,Spiders是您为特定站点(或者在某些情况下,一组站点)爬网和解析页面定义自定义行为的地方。 对于蜘蛛,刮擦周期经历如下: 首先生成初始请求以爬网第一个URL,并指定要使用从这些请求下载的响应调用的回调函数。 第一个执行请求是通过调用 start_requests()(默认情况下)为在请求中作为回调函数的方法中Request指定的URL start_urls和parse方法生成的 方法获得的。 在回调函数中,您解析响应(网页)并返回带有提取的数据,Item对象

Scrapy是一种用于抓取网站和提取结构化数据的应用程序框架,可用于广泛的有用应用程序,如数据挖掘,信息处理或历史存档。 尽管Scrapy最初是为网络抓取而设计的,但它也可以用于使用API​​(例如Amazon Associates Web Services)或作为通用网络爬虫来提取数据。 漫画示例蜘蛛 为了向您展示Scrapy带来的内容,我们将以最简单的方式运行蜘蛛,向您介绍Scrapy Spider的示例。 这是一个蜘蛛的代码,它在网页http://quotes.toscrape.com上删除着名的引号 : import scrapy class QuotesSpider(scr

您是否在WordPress网站的Google网站管理员工具帐户中看到“Googlebot无法访问CSS和JS文件”警告?该消息包含指向如何解决此问题的说明,但这些说明并不容易理解。在本文中,我们将向您展示如何修复WordPress网站上的“Googlebot无法访问CSS和JS文件”错误。 为什么谷歌需要访问CSS和JS文件? 谷歌专注于为用户友好的网站提供更好的排名 – 快速,具有良好用户体验的网站等。为了确定一个网站的用户体验,谷歌需要访问能够访问该网站的CSS和JavaScript文件。 默认情况下,WordPress 不阻止搜索机器人访问任何CSS或JS文件。但是,某些网站

最近,我们的一位读者询问是否有可能推迟出现在WordPress RSS Feed中的帖子?延迟RSS Feed中的帖子可以避免意外发布并在SEO中击败内容抓取工具。在本文中,我们将向您展示如何延迟发布WordPress RSS提要中的帖子。 为什么在WordPress中延迟Feed? 有时你的文章可能会出现语法或拼写错误。错误发生并分发给您的RSS订阅者。如果您的WordPress博客上有电子邮件订阅,那么这些订阅者也会获得它。 通过在RSS源和您的实时站点之间添加延迟,您可以获得一个时间窗口来捕获实时站点上的错误并进行修复。 RSS源也被内容使用抓网站。他们使用它来监控您的内容,并在它们显示

最近,我们的一位读者询问是否可以从互联网上永久删除WordPress网站?简单地删除您的WordPress安装并不能完全从互联网上删除它。在本文中,我们将向您展示如何从Internet永久删除WordPress网站。 何时以及为何从Internet永久删除WordPress网站 有时您可能需要从互联网上完全删除WordPress网站。您只需从服务器中删除WordPress文件,它就会变得不可用。 但是,您的网站仍可能出现在搜索结果,缓存快照和Wayback Machine中。 从互联网上删除网站的所有痕迹非常困难。有数千个网站聚合来自其他网站的内容,发布屏幕截图,提供统计数据和比较。 通过本文