2016-09-24 9 views
1

私は、次の<li>要素をhtml文書でpython 3の美しいスープと正規表現の文字列を使用して検索しようとしています。美しいスープと正規表現の文字列を使用してhtml要素を見つける方法

<li style="text-indent:0pt; margin-top:0pt; margin-bottom:0pt;" value="394">KEANE J. 
The plaintiff is a Sri Lankan national of Tamil ethnicity. While he was a 
passenger on a vessel travelling from India to 
Australia, that vessel ("the 
Indian vessel") was intercepted by an Australian border protection vessel ("the 
Commonwealth ship") 
in Australia's contiguous 
zone<span class="sup"><b><a name="fnB313" href="http://www.austlii.edu.au/au/cases/cth/HCA/2015/1.html#fn313">[313]</a></b></span>. 
</li> 

私は空のリストを返し、次のfind_all機能を使用して試してみました。私は、HTML文書にこの要素を見つけるだろうどのように

html.find('li', string=re.compile(r'^KEANE\sJ\.\s')) 

html.find_all('li', string='KEANE J.') 

私はどれもオブジェクトを返す正規表現とfind機能を、また試してみましたか?

+0

を? – danidee

+0

私は 'BeautifulSoup 4.5.1'を使用しています。 – cpd

+0

申し訳ありません、私は以前の完全な要素を含んでいませんでしたが、それは ''要素と関係があると思いますか? – cpd

答えて

1

存在する要素と関係がありますか?

この場合、テキストノードとは別に、li要素には他の子があります。これは.string paragraphに記載されています:

タグが複数のものが含まれている場合、それはそう.stringはあなたが何ができるかNone

になるように定義され、参照すべきか.stringはっきりしていないですテキストノード自体を検索し、その親を取得するには:それは `BeatifulSoup 4.4.1`あなたがbeautifulSoupのバージョンを使用している上で、私の作品

li = html.find(string=re.compile(r'^KEANE\sJ\.\s')).parent 
print(li) 
+0

ありがとう@alecxe! – cpd

関連する問題