繁体   English   中英

抓痒的python CrawlSpider无法爬行

[英]scrapy python CrawlSpider not crawling

import scrapy 
from scrapy.spiders.crawl import CrawlSpider, Rule 
from scrapy.linkextractors import LinkExtractor 

class MySpider(CrawlSpider):
    name = 'genericSpider'
    allowed_domains = ['example.com']
    start_urls = [url_1, url_2, url_3]

    rules = [
        Rule(
            LinkExtractor(),                     
            callback='parse',   
            follow=True        
        ),
    ]

    def parse(self, response): 
        hxs = scrapy.Selector(response)
        links = hxs.xpath('*//a/@href').extract()
        for link in links:
            print(link)
        print()

我正在尝试抓取网站。 对于我的代码示例,我只是提取所有链接并将它们打印到终端上。

这个过程非常适合start_urls中的URL,但似乎爬虫似乎不会抓取提取的URL。

这是CrawlSpider的重点,对吗? 访问页面,收集其链接并访问所有这些链接,直到其用尽?

我被困了几天,任何帮助都会很棒。

问题是您将方法parse命名。 根据文档 ,在使用CrawlSpider情况下应避免使用此名称,因为它会导致问题。 只需将方法重命名为parse_link (并在Rule调整callback参数),它将起作用。

另外,请记住, allowed_domains属性必须与您要爬网的URL匹配。

暂无
暂无

声明:本站的技术帖子网页,遵循CC BY-SA 4.0协议,如果您需要转载,请注明本站网址或者原文地址。任何问题请咨询:yoyou2525@163.com.

 
粤ICP备18138465号  © 2020-2024 STACKOOM.COM