2011-11-10 10 views
1

YouTubeのPHPのような/嫌いな結果はたくさんありますが、Pythonのものはありません。 YouTube-APIにはこれが含まれていないため、BeautifulSoupを使用して好き嫌いの数を削っていきたいと思います。YouTube好きなPythonとBeautifulSoupを使って

私は好き嫌いがこのスパンクラス内に含まれている知っている:

<span class="watch-likes-dislikes"> 
<span class="likes">6</span> likes, <span class="dislikes">0</span> dislikes 
     </span> 

ありがとうございました。

+0

あなたはBeautifulSoupでページを解析して、YouTubeの動画上同類の数を読み取ろうとする、またはGoogleのAPIを使用していますか?余計なコード行を排除するために質問を編集すると、あなたの質問に答えようとする人にとって役立つでしょう。 – Martey

+0

opps。しましょう。ありがとう。 –

答えて

1

あなたが提供したHTMLとはHTMLが異なっていると思います。ここで私は2017年2月の時点で同類の数を取得する方法である:

import sys 
reload(sys) 
sys.setdefaultencoding('utf-8') 
import urllib2 
import html5lib 
from bs4 import BeautifulSoup 
url = "https://www.youtube.com/watch?v=DNMlW_5Bmv4" 
page = urllib2.urlopen(url) 
soup = BeautifulSoup(page, 'html5lib') 
soup.find("button",attrs={"title": "I like this"}).get_text() 
# as of now, the number of upvote is 3240 

# dislike is similar: 
soup.find("button",attrs={"title": "I dislike this"}).get_text() 
# which is 24 by now 
3

なぜYouTube Data APIを使用しませんか?動画フィードには、<entry/>の中に

<gd:rating average='4.553648' max='5' min='1' numRaters='233' rel='http://schemas.google.com/g/2005#overall'/> 

が含まれています。

+0

私はそれを調べましたが、私がやりたいことはありますが、pythonとyoutube video_idを使ってxmlファイルを呼び出す方法を理解することはできません。 –

+0

@Davidでは、[GData Pythonクライアントライブラリ](http://code.google.com/p/gdata-python-client/)の[YouTubeClient.GetVideoEntry](http:// gdata-python -client.googlecode.com/hg/pydocs/gdata.youtube.client.html#YouTubeClient-GetVideoEntry)、またはhttp://gdata.youtube.com/feeds/api/videos/ {video_id}を取得して解析してください。多くのリクエストを行っている場合や、このサービスに応じて[developer key](http://code.google.com/apis/youtube/2.0/developers_guide_protocol.html#Developer_Key)を登録することを忘れないでください。 – ephemient

+0

ありがとうございました! http://code.google.com/p/python-youtube-datascraper/source/browse/youtube.py –

関連する問題