在同一 URL 上多次运行 Scrapy



我想抓取某个网址,每次调用时都会返回随机响应。下面的代码返回我想要的内容,但我想长时间运行它,以便我可以将数据用于 NLP 应用程序。这段代码只运行一次scrapy crawl the尽管我希望它由于最后一个 if 语句而运行更多。

Unix的启动命令是我正在寻找的吗?我试过了,但感觉有点慢。如果我必须使用 start 命令,在终端中打开许多选项卡并使用 start 前缀运行相同的命令是一种很好的做法,还是只会限制速度?

class TheSpider(scrapy.Spider):
name = 'the'
allowed_domains = ['https://websiteiwannacrawl.com']
start_urls = ['https://websiteiwannacrawl.com']
def parse(self, response):
    info = {}
    info['text'] = response.css('.pd-text').extract()
    yield info
    next_page = 'https://websiteiwannacrawl.com'
    if next_page is not None:
        yield scrapy.Request(next_page, callback=self.parse)

dont_filter

指示计划程序不应筛选此请求。当您想要执行相同的请求多个时,将使用此方法次,以忽略重复项筛选器。小心使用它,否则您将进入爬行循环。默认为 false

您应该在请求中添加此内容

yield scrapy.Request(next_page, dont_filter=True)
<小时 />

这不是关于您的问题,但对于callback=self.parse

请阅读解析方法

最新更新