1

次の例を使用して、BeautifulSoup を使用して SECOND INPUT 要素を検索 (または選択) する方法を教えてください。

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

</form>

もちろん、最初の要素を提供する .find('input', id=re.compile('b')) を使用しようとしました。

FindAll を使用せずに、2 番目に直接取得する方法を探しています。

正規表現を改善する方法はありますか?

他のアイデアはありますか?

4

2 に答える 2

2

BeautifulSoup のドキュメントによると、探している ID が正確にわかっている場合は、正規表現ではなく文字列として渡すことができます。

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

それ以外の場合、正規表現に一致する正確な秒を常に探している場合、ドキュメントでは、ジェネレーターではなくリストinputを提供することが示唆されています。soup.findallこれは、2 番目の結果を直接求めることができるため、反復する必要がないことを意味します。

soup.findall('input', id=re.compile('b'))[1]
于 2012-06-17T11:42:35.053 に答える
1

正規表現で b の後に $ を追加すると、うまくいくはずです。

于 2012-06-17T11:30:52.057 に答える