【问题标题】:What is type of object is returned by the Request in scrapyscrapy中的Request返回什么类型的对象
【发布时间】:2012-12-18 02:34:15
【问题描述】:

我想知道scrapy中request对象返回的是什么类型的对象

http://doc.scrapy.org/en/latest/topics/request-response.html

假设这是我的要求

myrequest = Request("http://www.example.com",  callback = self.mytest)

现在我想知道myrequest 变量中的内容。

有什么方法可以覆盖 Request 对象,因为我想创建返回响应对象的MYREQUEST,以便我可以访问resposne.bodyresposne.url

myvar =MYREQUEST("http://www.example.com",  callback = self.mytest)

然后我可以访问myvar.bodymyvar.url

我无法从 git hub 中找到请求类定义,该类在哪里定义。 我只能在那里找到请求文件夹,但找不到请求类 https://github.com/scrapy/scrapy/tree/master/scrapy/http

【问题讨论】:

  • 不能直接用type()来查找对象的类型吗?

标签: python scrapy


【解决方案1】:

Request 是一个class,所以你没有在这里调用函数,真正发生的是你创建了一个Request 对象并将它分配给myreqeust

Scrapydocumentation 所述:

回调函数将与下载的响应一起调用 对象作为它的第一个参数。

【讨论】:

  • 但是我怎样才能从回调函数中获取响应对象。我希望如果我调用 request 然后我会取回 resposne 对象。我可以在回调函数中得到它,但我无法从那个函数中得到它。我的意思是它在 mytest 中可用,但我无法从 mytest 回调之外获得它
  • 哇,感谢您的澄清。我现在明白了一些事情。有什么方法可以从我创建的 myrequest 访问响应,例如myrequest.response.body。换句话说,由可调用对象返回的东西存储在哪里
  • @user1858407 创建Request 对象时,不会自动发送请求。要获得响应对象,首先您需要了解如何真正发送请求,可能使用Downloader。您可以在文档中找到有关此类的更多信息。
  • 我无法在 scrapy 文档中找到类定义,所以我知道它是如何编码的
  • @user1858407 在你的 Python shell 中输入import scrapy; scrapy,你会看到scrapy的源代码。
猜你喜欢
  • 1970-01-01
  • 1970-01-01
  • 1970-01-01
  • 1970-01-01
  • 1970-01-01
  • 1970-01-01
  • 1970-01-01
  • 1970-01-01
  • 1970-01-01
相关资源
最近更新 更多