我想提取仅在第一页上想要的链接,并在搜寻器中将DEPTH_LIMIT设置为1,并且匹配规则中的参数rule()如下= 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)
答案 0 :(得分:0)
来自the docs:
follow
是一个布尔值,用于指定是否应遵循此规则提取的每个响应中的链接。
这意味着follow=False
只会阻止抓取工具跟踪在处理此规则创建的响应时找到的链接,而不会影响在解析start_urls
的结果时找到的链接。
follow
参数完全禁用规则毫无意义;如果您不想使用规则,为什么要创建它呢?