【发布时间】:2021-01-02 11:52:03
【问题描述】:
我正在使用 BS4 从足球统计页面中提取信息。我是这样开始的:
from bs4 import BeautifulSoup as bs
import requests
res = requests.get(url)
soup = bs(res.content, 'lxml')
scripts = soup.find_all('script')
scripts = [script for script in scripts]
这成功地将所有脚本元素作为列表返回。
我需要提取特定的脚本元素
具体来说,开头如下:
<script>
var teamsData = JSON.parse('\x7B\x2271\x22\x3A\x7B\x22id\x22\x3A\x2271\x22,\x22title\x22\x3A\x22Aston\x20Villa\x22,\x22history\x22\x3A\x5B\x5D\x7D,\x2272\x22\x3A\x7B\x22id\x22\x3A\x2272\x22...
</script>
我尝试了以下代码的各种迭代,但输出总是打印为空白:
for script in scripts:
if 'teamsData' in script.text:
print(script)
我总是可以简单地使用“print(scripts[2])”,但我想知道为什么我最初的努力失败了。
谢谢!
【问题讨论】:
-
可能跟脚本没有转成字符串有关?
标签: python html json python-3.x beautifulsoup