gpt4 book ai didi

python - 无法使用 json、requests、BeautifulSoup : ValueError(errmsg ("Extra data", s、end、len(s)) 找出 ValueError

转载 作者:太空宇宙 更新时间:2023-11-03 16:34:04 30 4
gpt4 key购买 nike

我无法弄清楚为什么会出现此 ValueError...为了提供一些上下文,我正在使用 requests、BeautifulSoup 和 json 与 python 来抓取站点 json 数据。

我不确定为什么它不适用于此网址。我已经用其他几个 URL 完成了此操作,没有任何问题。甚至“第 2 页”( http://hypem.com/playlist/loved/Bigdirtyian/json/2/data.js ) 也被成功抓取并存储在字典中。

我已经包含了 iPython 输入/输出(包括有问题的 URL 和成功的 URL - 第 3 页和第 2 页):

In [1]: url = 'http://hypem.com/playlist/loved/Bigdirtyian/json/3/data.js'

In [2]: import json

In [3]: import requests

In [4]: from bs4 import BeautifulSoup

In [5]: r = requests.get(url)

In [6]: content = r.content

In [7]: soup = BeautifulSoup(content, 'html.parser')

In [8]: page_json_dict = json.loads(str(soup))
---------------------------------------------------------------------------
ValueError Traceback (most recent call last)
<ipython-input-8-18cc0e11884e> in <module>()
----> 1 page_json_dict = json.loads(str(soup))

/Library/Frameworks/Python.framework/Versions/2.7/lib/python2.7/json/__init__.pyc in loads(s, encoding, cls, object_hook, parse_float, parse_int, parse_constant, object_pairs_hook, **kw)
336 parse_int is None and parse_float is None and
337 parse_constant is None and object_pairs_hook is None and not kw):
--> 338 return _default_decoder.decode(s)
339 if cls is None:
340 cls = JSONDecoder

/Library/Frameworks/Python.framework/Versions/2.7/lib/python2.7/json/decoder.pyc in decode(self, s, _w)
367 end = _w(s, end).end()
368 if end != len(s):
--> 369 raise ValueError(errmsg("Extra data", s, end, len(s)))
370 return obj
371

ValueError: Extra data: line 1 column 18924 - line 1 column 18932 (char 18923 - 18931)

In [9]: url2 = 'http://hypem.com/playlist/loved/Bigdirtyian/json/2/data.js'

In [10]: r2 = requests.get(url2)

In [11]: content2 = r2.content

In [12]: soup2 = BeautifulSoup(content2, 'html.parser')

In [13]: page_json_dict2 = json.loads(str(soup2))

In [14]: //

提前致谢!!!

最佳答案

如果你查看错误和内容,你的代码错误的原因是非常明显的 str(soup)看起来像,你可以看到</a></a>添加在末尾,这意味着您的 json 无效。

尝试在 Beautifulsoup 对象上使用 json.loads 是没有任何意义的,如果你在任何东西上调用它,它都会是 .content 但正确的解决方案是调用 .json。

page_json_dict = r.json()

关于python - 无法使用 json、requests、BeautifulSoup : ValueError(errmsg ("Extra data", s、end、len(s)) 找出 ValueError,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/37355633/

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