当前位置: 首页 > 知识库问答 >
问题:

Scrapy爬虫提取URL,但错过了一半回调

施景同
2023-03-14

我在尝试刮取此URL时遇到了一个奇怪的问题:

为了执行爬行,我设计了这个:

class IkeaSpider(CrawlSpider) :

    name = "Ikea"
    allower_domains = ["http://www.ikea.com/"]
    start_urls = ["http://www.ikea.com/fr/fr/catalog/productsaz/8/"]

    rules = (
        Rule(SgmlLinkExtractor(allow=[r'.*/catalog/products/\d+']),
            callback='parse_page',
            follow=True),
            )

    logging.basicConfig(filename='example.log',level=logging.ERROR)

        def parse_page(self, response):

            for sel in response.xpath('//div[@class="rightContent"]'):

                 Blah blah blah

我从命令行启动spider,我可以看到URL通常被删除,但是,对于其中一些URL,回调不起作用(大约一半的URL通常被删除)。

由于此页面上有150多个链接,这可能解释了爬虫程序缺少回调(太多作业)的原因。你们中的一些人对此有什么想法吗?

这是日志:

2015-12-25 09:02:55[scrapy]信息:存储在中的csv提要(107项):test.csv 2015-12-25 09:02:55[scrapy]信息:转储scrapy统计信息:“下载/请求字节”:68554,“下载/请求计数”:217,“下载/请求方法计数/获取”:217,“下载/响应字节”:4577452,“下载/响应计数”:217,“下载器/响应状态计数/200”:216,“下载器/响应状态计数/404”:1,“dupefilter/filtered”:107,“文件计数”:106,“文件状态计数/下载”:106,“完成原因”:“完成”,“完成时间”:datetime.datetime(2015,12,25,8,2,55,548350),“项目刮取计数”:107,“日志计数/调试”:433,“日志计数/错误”,“日志计数/信息”:8,“日志计数/警告”:1,“请求深度最大”:2,“响应接收计数”:217,“调度程序/出列”:110,“调度程序/出列/内存”:110,“调度程序/入列”:110,“调度程序/入列/内存”:110,“开始时间”:datetime.datetime(2015,12,25,8,2,28,656959)2015-12-25 09:02:55[scrapy]信息:蜘蛛关闭(已完成

共有2个答案

郝哲茂
2023-03-14

我不喜欢这些汽车蜘蛛类。我通常只建造我需要的东西。

import scrapy

class IkeaSpider(scrapy.Spider) :

    name = "Ikea"
    allower_domains = ["http://www.ikea.com/"]
    start_urls = ["https://www.ikea.com/fr/fr/cat/produits-products/"]

    logging.basicConfig(filename='example.log',level=logging.ERROR)

        def parse(self, response):
            # You could also use a.vn-nav__link::attr(href) selector.
            for link in response.css('a:contains("/fr/cat/")::attr(href)').getall()
                yield scrapy.Request(link, callback=self.parse_category)

        def parse_category(self, response):
            # parse items or potential sub categories
廉展鹏
2023-03-14

关于我的问题,我读了很多东西,显然,CrawlSpider类不够具体。这也许可以解释为什么它遗漏了一些链接,因为一些我无法解释的原因。基本上,建议将BaseSpider类与start\u requestsmake\u requests\u from\u url方法一起使用,以更具体的方式完成任务。我仍然不能完全确定如何准确地做到这一点。那只是一个暗示。

 类似资料:
  • 主要内容:Scrapy下载安装,创建Scrapy爬虫项目,Scrapy爬虫工作流程,settings配置文件Scrapy 是一个基于 Twisted 实现的异步处理爬虫框架,该框架使用纯 Python 语言编写。Scrapy 框架应用广泛,常用于数据采集、网络监测,以及自动化测试等。 提示:Twisted 是一个基于事件驱动的网络引擎框架,同样采用 Python 实现。 Scrapy下载安装 Scrapy 支持常见的主流平台,比如 Linux、Mac、Windows 等,因此你可以很方便的安装它

  • 嗨,伙计们,我已经写了一个Python爬虫刮...... 我不断地犯错误 “downloader/response_bytes”:9282,“downloader/response_count”:2,“downloader/response_status_count/200”:1,“downloader/response_status_count/301”:1,“finish_reason”:7,

  • 任务:爬取腾讯网中关于指定条件的所有社会招聘信息,搜索条件为北京地区,Python关键字的就业岗位,并将信息存储到MySql数据库中。 网址:https://hr.tencent.com/position.php?keywords=python&lid=2156 实现思路:首先爬取每页的招聘信息列表,再爬取对应的招聘详情信息 ① 创建项目 在命令行编写下面命令,创建项目tencent scrapy

  • 本文向大家介绍python scrapy爬虫代码及填坑,包括了python scrapy爬虫代码及填坑的使用技巧和注意事项,需要的朋友参考一下 涉及到详情页爬取 目录结构: kaoshi_bqg.py xmly.py item.py pipelines.py starts.py 然后是爬取到的数据 小说 xmly.json 记录一下爬取过程中遇到的一点点问题: 在爬取详情页的的时候, 刚开始不知道

  • 安装MySQL-python [root@centos7vm ~]# pip install MySQL-python 执行如下不报错说明安装成功: [root@centos7vm ~]# python Python 2.7.5 (default, Nov 20 2015, 02:00:19) [GCC 4.8.5 20150623 (Red Hat 4.8.5-4)] on linux2 T

  • 本文向大家介绍Python爬虫 bilibili视频弹幕提取过程详解,包括了Python爬虫 bilibili视频弹幕提取过程详解的使用技巧和注意事项,需要的朋友参考一下 两个重要点 1.获取弹幕的url是以 .xml 结尾 2.弹幕url的所需参数在视频url响应的 javascript 中 先看代码 先找到弹幕的url,以.xml结尾,所以先找到这串数字所在的位置,并获取这串数字发起第二次请求