如何使用Beautiful Soup从HTML提取特定的脚本元素

乔治

我正在使用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])',但是我想知道为什么我最初的努力失败了。

谢谢!

贾斯汀·埃兹基尔

显然,.text脚本标记始终为空字符串。但是,您可以从.children

from bs4 import BeautifulSoup
from io import StringIO

html = """
<script>
let a = "Hello";
</script>
"""
b = StringIO(html)
soup = BeautifulSoup(b, 'lxml')

for e in soup.find_all('script'):
    print(repr(e.text))
    print(repr(''.join(e.children)))

本文收集自互联网,转载请注明来源。

如有侵权,请联系 [email protected] 删除。

编辑于
0

我来说两句

0 条评论
登录 后参与评论

相关文章

如何使用scrapy或beautiful Soup提取特定html标签的内容?

使用 Beautiful Soup 提取特定 html 值後如何使用多個 url 進行抓取

使用Beautiful Soup提取href元素内的特定psuedo标签

使用beautiful-soup提取特定标签的元素

如何使用BeautifulSoup提取JSON脚本元素

如何使用Beautiful Soup从HTML获取文本

如何使用Beautiful Soup删除html注释

使用Beautiful Soup提取特定列表项

如何使用 Beautiful Soup 提取深度嵌套的 <p> 標籤

如何使用Beautiful Soup提取div的内容(图像)

如何使用Beautiful Soup查找节点

如何使用Beautiful Soup修改xml?

如何使用Beautiful Soup来<script>标签?

如何在Beautiful Soup中提取具有相同标签的特定嵌套元素?

如何使用Beautiful Soup查找带有特定文本的标签?

如何使用Beautiful Soup查找带有特定文本的标签?

如何使用 Beautiful Soup 和 Python 为 NASDAQ 站点中的表格提取 HTML 代码

使用 Beautiful Soup 提取文本

如何使用Python Beautiful Soup获取html的标记名称?

如何使用Beautiful Soup和regex字符串查找html元素

当有多个相似标签时,使用 Beautiful Soup 从特定 HTML 标签中提取文本

在Beautiful Soup中定位没有标签的文本元素

无法使用Python的Beautiful Soup从特定的span标签提取文本

使用 Beautiful Soup 4 提取特定列表项

Python:使用 Beautiful Soup 从 HTML 标签中提取图像源

在Beautiful Soup中,如何动态搜索表格以查找特定元素?

Python Beautiful Soup(不确定如何解析特定元素)

如何使用Beautiful Soup查找具有自定义html属性的所有元素,而不管html标签如何?

如何使用请求和Beautiful Soup抓取使用javascript的网站?