摘要:
Now, whenever you want to work on a project, you only have to activate the corresponding environment. On OS X and Linux, do the following: Windows: An 阅读全文
摘要:
在脚本中运行 Scrapy 除了常用的 scrapy crawl 来启动 Scrapy,也可以使用 API 在脚本中启动 Scrapy。 需要注意的是,Scrapy 是在 Twisted 异步网络库上构建的,因此其必须在 Twisted reactor 里运行。 另外,在 spider 运行结束后, 阅读全文
摘要:
Scrapy 通过合同(contract)的方式来提供了测试 spider 的集成方法。 可以硬编码(hardcode)一个样例(sample)url,设置多个条件来测试回调函数处理 response 的结果,来测试 spider 的回调函数。每个 contract 包含在文档字符串(docstri 阅读全文
摘要:
考虑下面的 spider: 简单地说,该 spider 分析了两个包含 item 的页面(start_urls)。Item 有详情页面,所以我们使用 Request 的 meta 功能来传递已经部分获取的 item。 Parse 命令 检查 spider 输出的最基本的方法是使用 parse 命令。 阅读全文
摘要:
Scrapy 提供了内置的 Telnet 终端,以供检查,控制 Scrapy 运行的进程。Telnet 仅仅是一个运行在 Scrapy 进程中的普通 Python 终端。因此你可以在其中做任何是。 Telnet 终端是一个自带的 Scrapy 扩展。该扩展默认为启用,不过你也可以关闭。 如何访问 T 阅读全文
摘要:
虽然 Python 通过 smtplib 库使得发送 email 变得非常简单,Scrapy 仍然提供了自己的实现。该功能十分易用,同时由于采用了 Twisted 非阻塞式(non-blocking)IO,其避免了对爬虫的非阻塞式 IO 的影响。另外,其也提供了简单的 API 来发送附件。通过一些 阅读全文
摘要:
Scrapy 提供了方便的收集数据的机制。数据以 key/value 方式存储,值大多是计数值。该机制叫做数据收集器(Stats Collector),可以通过 Crawler API 的属性 stats来使用。 无论数据收集(stats collection)开启或者关闭,数据收集器永远都是可用的 阅读全文
摘要:
Scrapy 提供了 log 功能。可以通过 scrapy.log 模块使用。当前底层实现使用了 Twisted logging,不过可能在之后会有所变化。 log 服务必须通过显式调用 scrapy.log.start() 来开启,以捕捉顶层的 Scrapy 日志消息。再次之上,每个 crawle 阅读全文
摘要:
Link Extractors 适用于从网页(scrapy.http.Response)中抽取会被 follow 的链接的对象。 Scrapy 默认提供 2 种可用的 Link Extractor,但你可以通过实现一个简单的接口创建自己制定的 Link Extractor 来满足需求。Scrapy 阅读全文
摘要:
实现爬虫时最经常提到的需求就是能合适的保存爬取到的数据,或者说,生成一个带有爬取数据的“输出文件”(通常叫“输出 feed”),来供其它系统使用。 Scrapy 自带了 Feed 输出,并且支持多种序列化格式(serialization format)及存储方式(storage backends)。 阅读全文