簡體   English   中英

遍歷 python 中的特定標簽

[英]Iterate through specific tags in python

我想從網站中提取文本,格式如下:

<a href="#N44">Avalon</a>
<a href="#N36">Avondale</a>
<a href="#N4">Bacon Park Area</a>

我如何只 select 那些帶有 href="#N" 的“a”標簽,因為還有更多?

我嘗試創建一個列表來迭代,但是當我嘗試代碼時,它只選擇一個元素。

loc= ['#N0', '#N1', '#N2', '#N3', '#N4', '#N5'.....'#N100']

for i in loc:
    name=soup.find('a', attrs={'href':i})    
print(name)

我明白了

<a href="#N44">Avalon</a>

不是

<a href="#N44">Avalon</a>
<a href="#N36">Avondale</a>
<a href="#N4">Bacon Park Area</a

剛剛怎么樣?

Avalon
Avondale
Bacon Park Area

提前致謝!

您正在迭代這些項目,但沒有將它們放在任何地方。 因此,當您完成循環后, name中剩下的就是最后一項。

您可以將它們放在如下列表中,並訪問.text屬性以僅從標簽中獲取名稱:

names = []

for i in loc:
    names.append(soup.find('a',attrs={'href':i}).text) 

結果:

In [15]: names
Out[15]: ['Bacon Park Area', 'Avondale', 'Avalon']

如果您想省略第一個列表的創建,您可以這樣做:

import re

names = [tag.text for tag in soup.find_all('a',href=re.compile(r'#N\d+'))] 

在正則表達式中, \d表示數字, +表示一個或多個實例。

暫無
暫無

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

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