Ответ 1
Вероятно, вы ищете аргумент dont_filter=True
на Request()
.
См. http://doc.scrapy.org/en/latest/topics/request-response.html#request-objects
Я изучаю Scrapy веб-фреймворк.
по умолчанию он не сканирует повторяющиеся URL-адреса или URL-адреса, которые уже сканированы scrap.
Как заставить Scrapy сканировать дубликаты URL или уже просканированные URL?
Я пытался узнать в Интернете, но не смог найти соответствующую помощь.
Я нашел DUPEFILTER_class= RFPDupeFilter
и SgmlLinkExtractor
из Scrapy - Spider сканирует дубликаты URL, но этот вопрос противоположен тому, что я ищу
Вероятно, вы ищете аргумент dont_filter=True
на Request()
.
См. http://doc.scrapy.org/en/latest/topics/request-response.html#request-objects
Более элегантное решение - полностью отключить дублирующий фильтр:
# settings.py
DUPEFILTER_CLASS = 'scrapy.dupefilters.BaseDupeFilter'
Таким образом, вам не нужно загромождать весь ваш код создания запроса с помощью dont_filter=True
. Другой побочный эффект: это отключает только дублирующую фильтрацию, а не любые другие фильтры, такие как внешняя фильтрация.
Если вы хотите использовать этот параметр выборочно только для одного или нескольких из нескольких пауков в вашем проекте, вы можете установить его с помощью custom_settings
в реализации паука:
class MySpider(scrapy.Spider):
name = 'myspider'
custom_settings = {
'DUPEFILTER_CLASS': 'scrapy.dupefilters.BaseDupeFilter',
}