Dus*_*els 5 python scrapy web-scraping python-3.x jupyter-notebook
我想直接response
在Jupyter笔记本中与Scrapy 对象进行交互,就像通过scrapy shell "some-url"
在命令行中输入Scrapy Shell之后一样。
在笔记本中,我可以运行以下命令而不会出现错误:
import scrapy
request = scrapy.Request("some-url")
response = scrapy.http.Response("some-url")
Run Code Online (Sandbox Code Playgroud)
但是request
,response
两者都具有空的身体属性。根据文档:
通常,Request对象是在Spider中生成的,并在整个系统中传递,直到它们到达Downloader,该Downloader执行请求并返回Response对象,该Response对象返回到发出请求的Spider中。
似乎我缺少“下载程序”执行请求对象并返回响应对象的步骤。我不知道这是如何工作的。
有人知道您scrapy shell "some-url"
在命令行中运行时会发生什么,以便我可以在Jupyter笔记本中复制这些步骤吗?
注意:此处发布了一个非常类似的问题,给出的答案对我有用,但是使用其他第三方“请求”库似乎是不必要/不理想的。
小智 7
你可以这样处理问题
import requests
from scrapy.http import TextResponse
res = requests.get('some-url')
response = TextResponse(res.url, body=res.text, encoding='utf-8')
Run Code Online (Sandbox Code Playgroud)
归档时间: |
|
查看次数: |
1418 次 |
最近记录: |