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

本文档介绍了调试蜘蛛的最常用技术。考虑下面的scrapy蜘蛛: import scrapy from myproject.items import MyItem class MySpider(scrapy.Spider): name = ‘myspider’ start_urls = ( ‘http://example.com/page1’, ‘http://example.com/page2’, ) def parse(self, response): # collect `item_urls` for item_url in item_urls: yield scrapy.Request(

Scrapy使用Request和Response对象来抓取网站。 通常,Request对象在蜘蛛中生成并通过系统,直到它们到达下载器,下载器执行请求并返回一个Response对象,该对象返回发出请求的蜘蛛。 两者Request和Response类都有子类,它们添加了基类中不需要的功能。下面在Request子类和Response子类中描述了这些。 请求对象 classscrapy.http.Request(url [,callback,method =’GET’,headers,body,cookies,meta,encoding =’utf-8′

引擎盖下发生了什么? Scrapy会调度Spider方法scrapy.Request返回的对象start_requests。在收到每个响应后,它实例化Response对象并调用与请求相关的回调方法(在本例中为 parse方法),将响应作为参数传递。 start_requests方法的快捷方式 您可以只使用URL列表定义类属性,而不是实现从URL start_requests()生成scrapy.Request对象的方法start_urls。然后,默认实现将使用此列表start_requests()来为您的spider创建初始请求: import scrapy class QuotesSpide

蜘蛛是您定义的类,Scrapy用来从网站(或一组网站)中提取信息。它们必须子类化 scrapy.Spider并定义要生成的初始请求,可选地如何跟踪页面中的链接,以及如何解析下载的页面内容以提取数据。 这是我们第一个蜘蛛的代码。将其保存在 项目目录quotes_spider.py下的tutorial/spiders文件中: import scrapy class QuotesSpider(scrapy.Spider): name = “quotes” def start_requests(self): urls = [ ‘http://quotes.toscrape.com/page/1/’,

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

urllib.parse– 将URL解析为组件 源代码: Lib / urllib / parse.py 此模块定义了一个标准接口来打破统一资源定位器(URL)字符串组件(寻址方案,网络位置,路径等),将组件重新组合成URL字符串,并将“相对URL”转换为给定“基本URL”的绝对URL . 模块具有被设计为匹配相对UniformResource定位器上的Internet RFC。它支持以下URL方案:file, ftp,gopher, hdl, http, https, imap, mailto, mms,news, nntp, prospero, rsync, rtsp, rts

urllib– URL处理模块 源代码: Lib / urllib urllib/是一个包,用于收集几个用于处理URL的模块: urllib.request用于打开和读取 urllib.error包含urllib.request urllib.parse引发的异常,用于解析URL urllib.robotparser解析robots.txt文件

cgi– 通用网关接口支持 源代码: Lib / cgi.py 通用网关接口(CGI)脚本的支持模块. 该模块定义了许多由Python编写的CGI脚本使用的实用程序. 介绍 HTTP服务器调用CGI脚本,通常用于处理通过HTML <FORM>要么 <ISINDEX>元件。 大多数情况下,CGI脚本存在于服务器的特殊情况中cgi-bin目录.HTTP服务器在脚本的shell环境中放置有关请求的各种信息(例如客户端的主机名,请求的URL,查询字符串和许多其他项目),执行脚本,并将脚本的输出发送回客户端. 脚本的输入也连接到客户端,有时表单数据以这种方式读取;在其

xml.sax.xmlreader– XML解析器接口 源代码: Lib / xml / sax / xmlreader.py SAX解析器实现XMLReader接口。它们是在Python模块中实现的,它必须提供一个函数create_parser()。这个函数由xml.sax.make_parser()调用,没有创建新解析器对象的参数. class xml.sax.xmlreader.XMLReader 可以由SAX解析器继承的基类. class xml.sax.xmlreader.IncrementalParser 在某些情况下,最好不要一次解析输入源,但在文档可用时对其进行补偿