2012-06-17 76 views
1

使用以下示例,如何使用BeautifulSoup查找(或選擇)SECOND INPUT元素。Python BeautifulSoup使用re.compile查找字符串末尾

<form> 
<input id="a:b:c" ...> 
<input id="a:b" ...> 

</form> 

我試圖用.find( '輸入',ID = re.compile( 'B')),這當然給我的第一個元素。

我正在尋找一種方法來直接獲取第二個,而不使用FindAll和迭代。

有沒有辦法改善正則表達式?

還有其他想法嗎?

回答

1

在你的正則表達式中添加$ b之後,應該可以做到這一點。

+0

謝謝,這真是令人興奮的是需要什麼。 –

+0

很酷。在這種情況下,您可以將答案標記爲正確。 – piokuc

2

按照BeautifulSoup documentation,如果你確切地知道你正在尋找的ID,你可以把它作爲一個字符串,而不是一個正則表達式:

soup.findall('input', id='a:b') 

否則,如果你一直在尋找正是第二個input匹配你的正則表達式,文檔建議soup.findall給你一個列表而不是一個生成器。這意味着你不需要迭代,因爲你可以直接詢問第二個結果:

soup.findall('input', id=re.compile('b'))[1] 
相關問題