【问题标题】:Scrapy: How to properly create scrapy.http.response.html.HtmlResponse object based on urlScrapy:如何根据 url 正确创建 scrapy.http.response.html.HtmlResponse 对象
【发布时间】:2020-04-24 18:38:13
【问题描述】:

我写了一个爬虫爬虫来从一个有几个子页面的网页上抓取数据。他们每个人还有几个子页面等。我想访问所有子子页面并从中获取特定信息。

为了越来越深入,我想用 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?

【问题讨论】:

  • 您似乎在使用 Scrapy,就好像它是 Requests 库或类似库一样。我建议你先完成 Scrapy 教程。
  • 对,也许我应该尝试使用 Scrapy 的不同方法或切换到 requests/beautiful soup。谢谢

标签: python web-scraping scrapy


【解决方案1】:

这就是 BeautifulSoup 的工作方式。使用链接提取器转到下一页并单击所需的项目。使用 xpath 提取您想要的内容。这不是scrapy的使用方式。

【讨论】:

    猜你喜欢
    • 1970-01-01
    • 1970-01-01
    • 2023-02-23
    • 2014-01-06
    • 2019-09-09
    • 2021-07-18
    • 2021-11-18
    • 2017-09-11
    • 1970-01-01
    相关资源
    最近更新 更多