【问题标题】:Running Scrapy for multiple times on same URL在同一个 URL 上多次运行 Scrapy
【发布时间】:2018-04-14 21:55:19
【问题描述】:

我想抓取某个 url,每次调用它都会返回一个随机响应。下面的代码返回我想要的,但我想长时间运行它,以便我可以将数据用于 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)

【问题讨论】:

    标签: python web-scraping scrapy web-crawler


    【解决方案1】:

    不要过滤

    表示此请求不应被调度程序过滤。 当您想要多次执行相同的请求时使用此选项 次,忽略重复过滤器。小心使用它,否则你会 进入爬行循环。默认为假

    你应该在你的请求中添加这个

    yield scrapy.Request(next_page, dont_filter=True)
    

    这不是关于您的问题,而是关于callback=self.parse,请阅读Parse Method

    【讨论】:

      猜你喜欢
      • 1970-01-01
      • 2017-01-03
      • 1970-01-01
      • 2020-08-12
      • 1970-01-01
      • 2015-12-26
      • 2011-01-16
      • 1970-01-01
      • 1970-01-01
      相关资源
      最近更新 更多