我正在使用python中的请求和beautifulsoup库抓取到某些网页
所以我用这个简单的代码就得到了想要的元素
<script>
data = {'user':{'id':1,'name':'joe','age':18,'email':'joe@hotmail.com'}}
</script>
所以我想获取变量中的电子邮件值 但是整个元素又回到列表中,当我指定该标签的文本时 我无法将其导入json,这给我列中的错误 有什么想法吗? 我将不胜感激
答案 0 :(得分:1)
简单的事情,也许会对您有所帮助。
import json
from bs4 import BeautifulSoup
html = """
<script>
data = {'user':{'id':1,'name':'joe','age':18,'email':'joe@hotmail.com'}}
</script>
"""
soup = BeautifulSoup(html, 'html.parser')
# slices [7:] mean that we ignore the `data = `
# and replace the single quotes to double quotes for json.loads()
json_data = json.loads(soup.find('script').text.strip()[7:].replace("'", '"'))
print(json_data)
print(type(json_data))
输出
{'user': {'id': 1, 'name': 'joe', 'age': 18, 'email': 'joe@hotmail.com'}}
<class 'dict'>