gpt4 book ai didi

python - 为什么这个特定的网站在解析时会导致递归错误?

转载 作者:太空宇宙 更新时间:2023-11-03 14:14:50 24 4
gpt4 key购买 nike

我一整天都在尝试读取和解析 car-part.com 上的一个页面,但遇到了麻烦。我正在使用 beautifulsoup 并且它始终返回递归错误。我最初认为这是由于 html 中的 4k 列表元素造成的,所以我增加了递归限制,但这并没有解决它。我意识到它发生在每个页面上,我不明白为什么它只发生在这个特定的网站上。

这是我遇到的错误:

RecursionError: maximum recursion depth exceeded in comparison

在那之前虽然不断重复

File "/Library/Frameworks/Python.framework/Versions/3.5/lib/python3.5/site-packages/bs4/element.py", line 1195, in decode_contents formatter)) File "/Library/Frameworks/Python.framework/Versions/3.5/lib/python3.5/site-packages/bs4/element.py", line 1126, in decode indent_contents, eventual_encoding, formatter) File "/Library/Frameworks/Python.framework/Versions/3.5/lib/python3.5/site-packages/bs4/element.py", line 1195, in decode_contents formatter)) File "/Library/Frameworks/Python.framework/Versions/3.5/lib/python3.5/site-packages/bs4/element.py", line 1126, in decode indent_contents, eventual_encoding, formatter) File "/Library/Frameworks/Python.framework/Versions/3.5/lib/python3.5/site-packages/bs4/element.py", line 1195, in decode_contents formatter)) ...

问题是我不明白这个控制台读数是什么意思。网站是否调用了这个文件,这是递归错误?

我不再担心解析站点,我已经获得了我需要的信息我只是想了解这里到底发生了什么;谁能给我解释一下?

就代码而言,没有太多要发布的,对象的任何调用都会返回递归错误。

from urllib.request import urlopen
from bs4 import BeautifulSoup

html = urlopen("http://car-part.com")
bsObj = BeautifulSoup(html.read(), "html.parser")

print(bsObj)

打印 bsObj 会返回错误,调用 bsObj.li 也会返回错误,但 .title 和其他元素似乎可以正常工作。

最佳答案

html5liblxml 都处理这种特殊情况:

bsObj = BeautifulSoup(html.read(), "html5lib")
bsObj = BeautifulSoup(html.read(), "lxml")

请注意,这需要安装 html5lib 和/或 lxml:

pip install html5lib
pip install lxml

另见 Differences between parsers .

关于python - 为什么这个特定的网站在解析时会导致递归错误?,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/34321208/

24 4 0
Copyright 2021 - 2024 cfsdn All Rights Reserved 蜀ICP备2022000587号
广告合作:1813099741@qq.com 6ren.com