2016-11-09 5 views
2

私は、選挙の選挙投票を取りやめて、更新時にチェックしようとしています。しかし、難しい部分は、リフレッシュするたびにすべてのクラスが変わるということです。私は、テキストTrumpを検索し、次にカウントである次の要素を探したいと思います。美味しいスープが次の要素をつかむ

私は、文字列Trumpを検索することによって、要素を見つけることができます。

import requests 
import re 
from bs4 import BeautifulSoup 
url = "https://www.google.com/webhp?sourceid=chrome-instant&ion=1&espv=2&ie=UTF-8#q=who+is+winning+the+presidential+election&eob=enn/p//1/0///////////" 
r = requests.get(url) 
soup = BeautifulSoup(r.content) 
elm = soup.find(text='Trump') 
print elm.text 

を私はlm = soup.find(text='Trump')で、トランプエレメントを見つけましたが、私はその1つの後に次の要素をつかむ方法がわかりません。

答えて

3

あなたの現在のコードは、そのテキストとノードの完全一致を探しています。これを試してください:

soup.body.findAll(text=re.compile('Trump')) 
> ["Donald Trump is US president-elect in 'America's Brexit' as Hillary Clinton concedes election - live", 'Donald Trump ', 'Donald Trump wins presidential election, plunging US into uncertain future'... ] 

代わりにターゲットテキストを含む正規表現を探しています。探している正規表現を絞り込むことができます。

b.body.findAll(text=re.compile('Trump wins .+? uncertain future')) 
> ['Donald Trump wins presidential election, plunging US into uncertain future'] 
+0

次の要素を取りたいと思います。私はすでにトランプの要素をつかんで、次のものをつかみたいだけです。 –

+0

私はあなたが '.next_sibling'や' .next_element'を探していると思います:https://www.crummy.com/software/BeautifulSoup/bs4/doc/#going-back-and-forth – benjaminjosephw

+0

googleのURLの変更以来、別のサイト)、あなたは私が受け入れることができるようにあなたの答えを変更することはできますか? –

関連する問題