【发布时间】:2021-06-05 21:36:50
【问题描述】:
我正在尝试使用 BeautifulSoup 抓取一个页面,并且<span> 标签内有<script> 标签,如下所示
<span data-link="{include tmpl='productCardOrderCount' ^~ordersCount=selectedNomenclature^ordersCount}"><script type="jsv#28_"></script>
<script type="jsv#27^"></script>
<script type="jsv#29_"></script>
<script type="jsv#26^"></script>
более 20 раз
<script type="jsv/26^"></script>
<script type="jsv/29_"></script>
<script type="jsv/27^"></script>
<script type="jsv/28_"></script>
</span>
但是由于<script>标签在bs4中没有被解析为HTML,所以下面的代码返回<span>标签而不带文本("более 20 раз")
rating = soup.find("p", {"class": "order-quantity"})
如何获取<span> 标签内的文字?
【问题讨论】:
-
页面是动态加载的吗?使用
print(soup.prettify())时是否出现文字? -
BS4 将解析脚本标签,它只是不执行它们。但是如果文本在 HTML 中,它应该被返回。
-
@MendelG 不,它不包含任何
-
@SofiyaChobanyan 页面是动态加载的。见Web-scraping JavaScript page with Python
-
谢谢,会查收的
标签: python html beautifulsoup