首页
学习
活动
专区
圈层
工具
发布
社区首页 >问答首页 >scrapy python CrawlSpider不爬行

scrapy python CrawlSpider不爬行
EN

Stack Overflow用户
提问于 2019-04-24 16:35:37
回答 1查看 34关注 0票数 0
代码语言:javascript
复制
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中的urls非常有效,但是爬虫似乎不会抓取提取的urls。

这就是CrawlSpider的意义所在,对吗?访问一个页面,收集它的链接,并访问所有这些链接,直到它耗尽它们?

我已经被困了几天了,任何帮助都是最好的。

EN

回答 1

Stack Overflow用户

发布于 2019-04-24 16:48:20

问题是您将方法命名为parse。根据documentation,在使用CrawlSpider的情况下应避免使用此名称,因为它会导致问题。只需将该方法重命名为parse_link (并调整Rule中的callback参数),它就可以工作了。

此外,请记住,allowed_domains属性必须与您要搜索的URL相匹配。

票数 2
EN
页面原文内容由Stack Overflow提供。腾讯云小微IT领域专用引擎提供翻译支持
原文链接:

https://stackoverflow.com/questions/55825722

复制
相关文章

相似问题

领券
问题归档专栏文章快讯文章归档关键词归档开发者手册归档开发者手册 Section 归档