Я хочу извлечь ссылку, которую хочу получить только на первой странице, и я установил DEPTH_LIMIT в 1 в искателя, а правило параметра() в правиле сопоставления следует = False, но я все еще инициировал несколько запросов, я не знаю Зачем. Надеюсь, кто-то может ответить на мои сомнения. Заранее спасибо.
# -*- coding: utf-8 -*-
import scrapy
from scrapy.http import Request
from scrapy.spiders import CrawlSpider,Rule
from scrapy.linkextractors import LinkExtractor
class OfficialSpider(CrawlSpider):
name = 'official'
allowed_domains = ['news.chd.edu.cn','www.chd.edu.cn']
start_urls = ['http://www.chd.edu.cn']
custom_settings = {
'DOWNLOAD_DELAY':0,
'DEPTH_LIMIT':1,
}
rules = (
# Rule(LinkExtractor(allow=('http://news.chd.edu.cn/',)),callback='parse_news',follow=False),
Rule(LinkExtractor(allow=('http://www.chd.edu.cn/')),callback='parse_item',follow=False),
Rule(LinkExtractor(allow=("",)),follow=False),
)
def parse_news(self,response):
print(response.url)
return {}
def parse_item(self,response):
self.log("item链接:")
self.log(response.url)
Из документов:
follow
- это логическое значение, которое указывает, следует ли следовать ссылкам из каждого ответа, извлеченного с помощью этого правила.
Это означает, что follow=False
только остановит искатель от следующих ссылок, найденных при обработке ответа, созданного этим правилом, и не может повлиять на найденные при анализе результата start_urls
.
Не было бы смысла в follow
аргументе, полностью отключив правило; если вы не хотите использовать правило, зачем вы его вообще создадите?
follow=False
состоит в том, чтобы извлечь ссылки, соответствующие правилам, из ответа, полученного доступом start_urls
, а затем продолжить доступ к этим ссылкам, чтобы получить ответ, и проанализировать ссылки, соответствующие правилам. , follow=False
предотвращает дальнейшее отслеживание. Я не знаю, думаю ли я так. Если я хочу извлечь ссылку из ответа, полученного из заданного start_urls
, но не извлекать ее дальше, что мне следует делать лучше всего? Я надеюсь получить совет.
follow=False
заставит скрап игнорировать ваше правило?follow=False
, сканер должен получить доступ только кstart_urls
, но посмотрите журнал, он все еще инициирует другие запросы, я не знаю почему. Мой уровень английского немного плох, я не знаю, понятно ли это.