簡體   English   中英

如何通過Python中的BeautifulSoup提取子標簽中的href?

[英]How to extract href in sub-tags through BeautifulSoup in Python?

例如:

<ul class="polysemantList-wrapper cmn-clearfix" style="display: none">
<li class="item">▪<span class="selected">美國1995年馬丁·坎貝爾執導好萊塢電影</span></li>
<li class="item">▪<a title="錦瑟華年創作都市異能小說" href="/item/%E9%BB%84%E9%87%91%E7%9C%BC/7822656#viewPageContent">錦瑟華年創作都市異能小說</a></li>
<li class="item">▪<a title="單兵便攜式電腦" href="/item/%E9%BB%84%E9%87%91%E7%9C%BC/16402442#viewPageContent">單兵便攜式電腦</a></li>
<li class="item">▪<a title="任天堂Wii主機射擊類游戲《黃金眼》" href="/item/%E9%BB%84%E9%87%91%E7%9C%BC/9585407#viewPageContent">任天堂Wii主機射擊類游戲《黃金眼》</a></li>
<li class="item">▪<a title="珠寶鑒定職業" href="/item/%E9%BB%84%E9%87%91%E7%9C%BC/9585395#viewPageContent">珠寶鑒定職業</a></li>
<li class="item">▪<a title="Rare Software制作的N64游戲" href="/item/%E9%BB%84%E9%87%91%E7%9C%BC/10704458#viewPageContent">Rare Software制作的N64游戲</a></li>
<li class="item">▪<a title="大鵬金翅明王小說" href="/item/%E9%BB%84%E9%87%91%E7%9C%BC/17571741#viewPageContent">大鵬金翅明王小說</a></li>
<li class="item">▪<a title="證券分析軟件" href="/item/%E9%BB%84%E9%87%91%E7%9C%BC/9585420#viewPageContent">證券分析軟件</a></li>
<li class="item">▪<a title="《藏地密碼》中的藏獒" href="/item/%E9%BB%84%E9%87%91%E7%9C%BC/9585384#viewPageContent">《藏地密碼》中的藏獒</a></li>
</ul>

首先,我可以提取多項:

multi_entry = soup.findAll('ul', attrs = {'class': 'polysemantList-wrapper cmn-clearfix'})

那么如何導航到子標簽li的href呢? 我想獲取每個項目中所有 url 的列表。 以下可以提取所有 'li' 項,但不一定來自 polysemantList 部分。

li_items = soup.findAll('li', attrs={'class': 'item'})

我們可以通過一次搜索在polysemantList-wrapper cmn-clearfix中找到所有具有 class itemli 然后我們可以遍歷結果和 output 的href值。

li = soup.find("ul", { "class" : "polysemantList-wrapper cmn-clearfix" }).findAll("li", attrs={'class': 'item'}, recursive=False)

for e in li:
    for x in e.findAll('a', href=True):
        print(x['href'])

也可以使用列表理解 output 列表

[x['href'] for e in li for x in e.findAll('a', href=True)]

Output


/item/%E9%BB%84%E9%87%91%E7%9C%BC/7822656#viewPageContent
/item/%E9%BB%84%E9%87%91%E7%9C%BC/16402442#viewPageContent
/item/%E9%BB%84%E9%87%91%E7%9C%BC/9585407#viewPageContent
/item/%E9%BB%84%E9%87%91%E7%9C%BC/9585395#viewPageContent
/item/%E9%BB%84%E9%87%91%E7%9C%BC/10704458#viewPageContent
/item/%E9%BB%84%E9%87%91%E7%9C%BC/17571741#viewPageContent
/item/%E9%BB%84%E9%87%91%E7%9C%BC/9585420#viewPageContent
/item/%E9%BB%84%E9%87%91%E7%9C%BC/9585384#viewPageContent

暫無
暫無

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

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