2011-11-10 96 views
1

很多PHP在YouTube上喜歡/不喜歡結果的結果,但在Python中沒有結果。我想使用BeautifulSoup來刮掉喜歡和不喜歡的數字,因爲YouTube-API不包含此功能。YouTube喜歡使用Python&BeautifulSoup

我知道好惡包含在此跨度類中:

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

謝謝。

+0

你是想通過解析與BeautifulSoup的頁面閱讀喜歡的YouTube影片的數量,或通過使用谷歌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?視頻供稿包含

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

每個<entry/>之內。

+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}」。如果您提出了很多請求或取決於此服務,請不要忘記註冊[開發人員密鑰](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 –

相關問題