簡體   English   中英

<span>BeautifulSoup刮標簽</span>

[英]Scraping <span> tag with BeautifulSoup

我正在嘗試使用 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>標簽中的文本?

文本位於標簽<script type="jsv#26^">下。 您可以使用soup.find("script", type="jsv#26^")搜索它。

from bs4 import BeautifulSoup


html = """
<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>
"""

soup = BeautifulSoup(html, "html.parser")

print(soup.find("script", type="jsv#26^").find_next(text=True).strip())

Output:

более 20 раз

暫無
暫無

聲明:本站的技術帖子網頁,遵循CC BY-SA 4.0協議,如果您需要轉載,請注明本站網址或者原文地址。任何問題請咨詢:yoyou2525@163.com.

 
粵ICP備18138465號  © 2020-2024 STACKOOM.COM