2017-12-29 22 views
0

はコードの下に表示のdivを返すウェブサイトBeautifulSoup - divで他のカテゴリを抽出する方法をIDで指定しましたか?以下のコードを使用して

votes = soup.find('div', {'id': 'vote_text_299159'}) 


<div id="vote_text_247231" class="left action_unclicked_show cursor" style="width:97px;margin-left:3px;" data-counttext="191 votes" data-actiontext="VOTE!" onmouseover="user_action_button_mouseover('vote','247231')" onmouseout="user_action_button_mouseout('vote', '247231')" onclick="loginPrompt(&#x27;vote&#x27;);clickTrack(&quot;photo_vote&quot;);"> 

上の得票数が含まれているのdivを抽出します。

この戻り値を使用し、IDだけを使用してデータカウントテキスト(または他のカテゴリ)を抽出するにはどうすればよいですか?

答えて

1

get( 'attribute_name')関数がここで動作すると思います。あなたの場合、 'attribute_name'は 'data-counttext'になります。以下のコード。ここで

votes = soup.find('div', {'id': 'vote_text_299159'}) 
dataCountText = votes.get('data-counttext') 
0

は、正規表現のアプローチです:

import re 
pattern=r'data-counttext="(\w.+?)"' 
string_1="""<div id="vote_text_247231" class="left action_unclicked_show cursor" style="width:97px;margin-left:3px;" data-counttext="191 votes" data-actiontext="VOTE!" onmouseover="user_action_button_mouseover('vote','247231')" onmouseout="user_action_button_mouseout('vote', '247231')" onclick="loginPrompt(&#x27;vote&#x27;);clickTrack(&quot;photo_vote&quot;);">""" 
match=re.search(pattern,string_1) 
print(match.group(1)) 

出力:

191 votes 
0

あなたがタグのすべての属性を取得するためにtag.attrsを使用することができます。

from bs4 import BeautifulSoup as bs 
s = """<div id="vote_text_247231" class="left action_unclicked_show cursor" style="width:97px;margin-left:3px;" data-counttext="191 votes" data-actiontext="VOTE!" onmouseover="user_action_button_mouseover('vote','247231')" onmouseout="user_action_button_mouseout('vote', '247231')" onclick="loginPrompt(&#x27;vote&#x27;);clickTrack(&quot;photo_vote&quot;);">""" 
soup = bs(s, "lxml") 
votes = soup.find("div", {"id": "vote_text_247231"}) 
votes.attrs 

出力

{'class': ['left', 'action_unclicked_show', 'cursor'], 
'data-actiontext': 'VOTE!', 
'data-counttext': '191 votes', 
'id': 'vote_text_247231', 
'onclick': 'loginPrompt(\'vote\');clickTrack("photo_vote");', 
'onmouseout': "user_action_button_mouseout('vote', '247231')", 
'onmouseover': "user_action_button_mouseover('vote','247231')", 
'style': 'width:97px;margin-left:3px;'} 
関連する問題