You need to enable JavaScript to run this app.
优惠活动
大模型
产品
解决方案
定价
更多

Python 3.5中打印对象十六进制值而非parse方法返回值的问题排查

Scrapy parse方法打印出对象十六进制值而非返回值?

问题描述

使用Python 3.5运行Scrapy爬虫代码时,打印parse方法相关内容时,显示的是对象的十六进制内存地址,而不是parse方法的返回值,请问哪里出错了?

相关代码

class BrickSetSpider(scrapy.Spider):
    name = "website_spider"
    site_search_url = 'website.com'
    website_base = 'http://www.websitenew.com/search?id=site:'
    start_urls = [website_base + site_search_url]
    
    def parse(self, response):
        website_result_list = []
        website_result_page = []
        NEXT_PAGE_SELECTOR = 'a.sb_pagN ::attr(href)'
        next_page = response.css(NEXT_PAGE_SELECTOR).get()
        # 此处省略数据提取或分页处理逻辑
        # ...
        return website_result_list

问题分析与解决

嘿,我来帮你捋清楚这个问题!你看到的十六进制值其实是Python对象的内存地址,出现这种情况通常有这几个原因,对应解决方法如下:

  • 你打印的是方法对象本身,而非方法的返回结果
    如果你写了类似print(BrickSetSpider.parse)或者print(spider.parse)的代码,这打印的是方法这个对象本身,自然会显示它的内存地址。你需要调用方法(加括号)并传入有效的response对象才能拿到返回值:

    # 先实例化爬虫对象
    spider = BrickSetSpider()
    # 构造一个有效的response对象(示例)
    from scrapy.http import Response
    response = Response(url=spider.start_urls[0])
    # 调用方法并打印返回值
    print(spider.parse(response))
    
  • parse方法返回的是迭代器/生成器,直接打印看不到内部内容
    如果你的parse方法用了yield(Scrapy推荐的写法),返回的是生成器对象,直接打印生成器只会显示它的类型和内存地址。这时候你需要遍历生成器才能拿到里面的Item或Request:

    results = spider.parse(response)
    for item_or_request in results:
        print(item_or_request)
    
  • 想查看方法内部的处理结果,要在方法内直接打印
    如果你是想确认parse方法里提取到的数据是否正确,最直接的方式是在方法内部打印数据,而不是等外部返回后再处理:

    def parse(self, response):
        website_result_list = []
        # 假设这里有数据提取逻辑
        for item in response.css('.result-item'):
            data = {
                'title': item.css('h3::text').get(),
                'url': item.css('a::attr(href)').get()
            }
            website_result_list.append(data)
            # 打印单条提取数据
            print("提取到的数据:", data)
        # 打印全部结果列表
        print("所有提取结果:", website_result_list)
        return website_result_list
    

内容的提问来源于stack exchange,提问作者John

相关产品推荐
方舟 Agent Plan

超全模态模型 × Harness 升级,最新支持 Deepseek-V4.1-Flash、GLM-5.3 系列、Doubao-Seedream-5.0-pro、Kimi-K3 (部分), 限时 9.9 元起

最近更新时间:2026.05.25 08:36:48