[英]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.