2011-11-10 65 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 –

相关问题