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" 我有抓取的信息。
我有:
- 使用字符串比较
- 必须创建查找文件并进行匹配
但我想知道他们有什么有效的方法吗?
定义要检查的字符串列表并使用内置 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()
时都重新定义它。一个好主意是在项目设置中配置它。
此外,如果您要跳过具有任何已定义术语的项目,请考虑将检查移至蜘蛛级别。这将有助于避免将项目从蜘蛛传递到管道的开销。
我正在使用 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" 我有抓取的信息。
我有:
- 使用字符串比较
- 必须创建查找文件并进行匹配
但我想知道他们有什么有效的方法吗?
定义要检查的字符串列表并使用内置 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()
时都重新定义它。一个好主意是在项目设置中配置它。
此外,如果您要跳过具有任何已定义术语的项目,请考虑将检查移至蜘蛛级别。这将有助于避免将项目从蜘蛛传递到管道的开销。