【问题标题】:Unnecessary HTML output with Scrapy使用 Scrapy 进行不必要的 HTML 输出
【发布时间】:2021-09-18 18:25:24
【问题描述】:

我正在抓取h1 标签的HTMLselector 仅针对 h1 标签,但是当我打印它时,它还会打印一个不必要的带有 h1 标签的 HTML

import requests 
from scrapy.selector import Selector

r = requests.get('https://www.catholicgallery.org/mass-reading/310122/')
resp = Selector(text=r.text)
h1 = resp.xpath('//h1[@class="tdb-title-text"]').get()
print(h1)

输出:

【问题讨论】:

  • 如果你已经安装了 Scrapy。你能在你的python环境中发布scrapy version -v命令的输出吗?
  • 我有 Scrapy : 2.4.1
  • 这还不够。我的意思是 - 来自指定命令 scrapy version -v 的完整日志输出。它应该包括所有相关库的版本:lxml、提到的 libxml2、cssselect 等。
  • 这里是完整列表 Scrapy:2.4.1 lxml:4.6.3.0 libxml2:2.9.12 cssselect:1.1.0 parsel:1.5.2 w3lib:1.21.0 Twisted:21.2.0 Python: 3.8.11(默认,2021 年 8 月 6 日,09:57:55)[MSC v.1916 64 位(AMD64)] pyOpenSSL:20.0.1(OpenSSL 1.1.1l 2021 年 8 月 24 日)密码学:3.4.7 平台:Windows- 10-10.0.19043-SP0
  • 好的。你有libxml2 : 2.9.12 我知道至少在一种情况下将此库降级到版本2.9.10 - 解决了这个问题github.com/scrapy/parsel/issues/228#issuecomment-913465379

标签: python web-scraping python-requests scrapy


【解决方案1】:

好像受这个问题影响了:
scrapy/parsel: HTML code extraction from node is not working #228


据悉,将libxml降级到2.9.10可以解决这个问题。

【讨论】:

  • 我应该使用哪个命令?当我使用此命令“pip install --upgrade libxml2==2.9.10”时,它显示“错误:找不到满足要求 libxml2==2.9.10 的版本错误:找不到与 libxml2==2.9 匹配的发行版。 10"
  • libxml2 不是 python 包 - 它不能通过 pip 安装/更新。
  • 我明白了,那我想怎么降级呢?
  • 更新更改 id 的最简单方法 - 在可兼容的环境中使用 conda。或者您可以安装旧版本的lxml(假设它将基于旧版本的libxml
猜你喜欢
  • 2015-12-21
  • 1970-01-01
  • 2016-01-30
  • 1970-01-01
  • 1970-01-01
  • 2013-02-25
  • 1970-01-01
  • 1970-01-01
  • 2018-05-18
相关资源
最近更新 更多