2016-04-26 34 views
0

私はPython 2.7で働いています。python-youtube。 URLを取得ビデオのリスト

example list

は私が書いた

は(私はPythonで全く新しいです):その後、

from bs4 import BeautifulSoup 
import urllib2 
import re 


url='https://www.youtube.com/playlist?list=PLYjSYQBFeM-zQeZFpWeZ_4tnhc3GQWNj8' 
page=urllib2.urlopen(url) 
soup = BeautifulSoup(page.read()) 

href_tags = soup.find_all(href=True) 

ff = open("C:/exp/file.txt", "w") 

、これは働いていた私は、特定のユーチューブリスト内の動画のリストをTXTを作成したい :私が持っているものだけを残しておきたいので、「観る」

for i in href_tags: 
    ff.write(str(i)) 
ff.close() 

しかし、内部の、私の代わりに試してみました:

for i in href_tags: 
    if re.findall('watch',str(i))=='watch': 
     ff.write(str(i)) 
ff.close() 

しかし、私は空のTXTを取得しました。

どうすればリンクを保持できますか?これを行うより良い方法はありますか?

答えて

0

シンプルinは行う必要があります。

for i in href_tags: 
    if 'watch' in str(i): 
     ff.write(str(i)) 
    ff.close() 
0
# This code will work if you're are willing to use a newer version of Python 
from bs4 import BeautifulSoup 
import requests 

class Playlist(): 
    def __init__(self, playListUrl): 
     self._playListUrl = playListUrl 

     # This will take the html text from Youtube playList url and stores it in a variable called html-doc. 
     self._htmldoc = requests.get(str(self._playListUrl)).text 
     self._soup = BeautifulSoup(self._htmldoc, 'html.parser') 

     # This will create a list of all the titles and the youtube url videos using the html-doc. 
     self._rawList = self._soup('a', {'class': 'pl-video-title-link'}) 

     # This will loop through a list of titles and Youtube urls and formats it nicely for you. 
     for link in self._rawList: 
      print('{0}'.format(link.string) + 'http://youtube.com' + '{0}'.format(link.get('href'))) 

# To use this class all you got to do is: 
# 1 - Create a new object to use the class.. 
# 2- put a youtube playlist url where it is shown below.. 
# 3- Run it, and enjoy. 
objPlaylist = Playlist('put Youtube playlist url here') 
関連する問題