Scrapy:如何根据url正确创建Scrapy.http.response.html.HtmlResponse对象



我写了一个scratch spider来从一个有几个子页面的网页中抓取数据。它们中的每一个也有几个子页面等。我想访问所有的子页面-页面并从中获取特定信息。

为了越来越深入,我想用xpath((查询后续的子页面,以获取链接并输入它们。但是要使用xpath,我需要一个scrapy.http.response.html.HtmlResponse类的对象。因此我写:

from scrapy.http import HtmlResponse
new_response =  HtmlResponse(url=subpage_url)

但是,当我对这样一个对象执行xpath查询时,我没有得到应该得到的,只是一个空列表。我怀疑的是,我没有在HtmlResponse()中指定"body"参数。但是正文隐藏在subpage_url的HTML中,我想从子页面中获取它。我是不是做了一些不正确的事情,或者有什么更好的方法可以从具有已知URL的子页面获取HTML来xpath查询这个HTML?

这就是BeautifulSoup的工作原理。使用链接提取器转到下一页,然后单击所需项目。使用xpath提取所需的内容。这不是使用scrapy的方式。

最新更新