使用scrapy从多个网站中查找特定文本

时间:2015-11-30 00:43:45

标签: web web-crawler scrapy keyword extraction

我想抓取/检查特定关键字的多个网站(在同一个域上)。我找到了这个脚本,但是我无法找到如何添加要搜索的特定关键字。脚本需要做的是找到关键字,并给出找到它的链接的结果。有谁能指出我可以在哪里阅读更多关于这个? 我一直在阅读scrapy's documentation,但我似乎无法找到它。

谢谢。

class FinalSpider(scrapy.Spider):
name = "final"
allowed_domains = ['example.com']
start_urls = [URL % starting_number]
def __init__(self):
    self.page_number = starting_number

def start_requests(self):
    # generate page IDs from 1000 down to 501
    for i in range (self.page_number, number_of_pages, -1):
        yield Request(url = URL % i, callback=self.parse)

def parse(self, response):
    **parsing data from the webpage**

1 个答案:

答案 0 :(得分:0)

您需要使用一些解析器或正则表达式来查找您在响应正文中寻找的文本。

每个scrapy回调方法都包含response对象中的响应主体,您可以使用response.body进行检查(例如在parse方法内),然后您将不得不使用知道您抓取的网页的xml结构,一些regex或更好的xpathcss选择器可以转到文本的路径。

Scrapy允许您将response对象用作选择器,因此您可以使用response.xpath('//head/title/text()')转到页面标题。

希望它有所帮助。