python 使用 scrapy spider 进行网页抓取

python web scraping with scrapy spider

我正在使用 scrapy 编写简单的蜘蛛,我想在其中添加一些机制来找出我正在抓取的内容。

例如我有字符串列表:

The resource you are looking for has expired
The resource is not available 

就像我有成千上万的字符串。现在我想检查爬取的内容是否有这个。我该怎么做 python ?

def process_item(self, item, spider):
    try:
        content = items['body']
       ----------------------------- // How can i proceed further.
    except pymssql.Error, e:
        print ("error")

在 "content" 我有抓取的信息。

我有:

  1. 使用字符串比较
  2. 必须创建查找文件并进行匹配

但我想知道他们有什么有效的方法吗?

定义要检查的字符串列表并使用内置 any() 函数:

terms = [
    'The resource you are looking for has expired',
    'The resource is not available'
]

has_terms = any(term in content for term in terms)

请注意,terms 列表应在 process_item() 之外定义,以避免每次调用 process_item() 时都重新定义它。一个好主意是在项目设置中配置它。

此外,如果您要跳过具有任何已定义术语的项目,请考虑将检查移至蜘蛛级别。这将有助于避免将项目从蜘蛛传递到管道的开销。