python - scraper.http.HtmlResponse 类构造函数中的“body”有什么意义?
问题描述
这可能是一个超级菜鸟问题......如果是的话,请原谅我......我读到有人像这样构造一个 HtmlResponse 类:
response = HtmlResponse(url = 'http://asite.com', body=html, encoding='utf-8')
body=html 有什么作用?它是否指定了源 html?即使指定了 url,为什么还需要源 html?
解决方案
要为您的问题提供上下文,您需要了解 Scrapy 不是用于提出直接请求的工具。Scrapy 是一个网络爬虫框架,它作为一个项目独立工作。
我假设您认为这response = HtmlResponse(url = 'http://asite.com', ...)
可能是从该特定站点“下载”信息的一种方式,但事实并非如此。Scrapy 旨在以某种方式和此处指定的特定顺序工作。请求和响应并不意味着在 Scrapy 中独立使用,因为它有自己的调度程序,您可以在其中转储Request
对象并取回Response
对象。
这些Response
对象并不意味着直接实例化(事实上我一生中从未实例化过一个对象Response
),因为它们是由 Scrapy 调度程序创建的,是先前指定的Request
.
Haing 说,你当然仍然可以在 Python 中Response
像其他任何东西一样实例化 a class
,事实上它很有用,但主要用于测试目的,但仅此而已,因为它只是 Scrapy 调度程序应该来自的“无用”表示.
推荐阅读
- asp.net-core - 选择 HTML 助手获取扩展方法而不是枚举字符串
- html - 使用负边距将 div1 粘附在 div2 的左侧
- html - 如何在角度中使用(#)动态设置 id?
- javascript - d3 条件文本颜色(在彩色矩形内)
- javascript - 未定义不是 Photoshop 脚本中的对象
- javascript - 是的,验证访问 parent.parent
- ios - 当标记拖动到达iOS中的屏幕边界时如何移动地图相机?
- visual-studio - 为什么适用于 Visual Studio 2017 和 2019 的 .Net Core SDK 不同?
- sql - SQL - 中断查询
- php - 如何使用 laravel 发送电子邮件