Python Youtube Parser [Basit]
-
Merhaba arkadaşlar forum sitesinin birinde arkadaşın teki python youtube parser istemiş tabi bende bunu hemen kendime görev edindim ve yaptım ama yanlış yapmışım onu konuyu tam okuduktan sonra anladım.Neyse ilk kodumuz search_query e göre ilk 5 video yu alıyor bunların isimleri ve embed kodlarını yazdırıyor.
#-*-coding:utf-8-*- import urllib.request import urllib.parse import sys import re al = sys.argv[1] url = "https://www.youtube.com/results?search_query=" + urllib.parse.quote(al) baslikbilgileri = { 'User-Agent': 'Mozilla/5.0 (Windows; U; Windows NT 5.1; en-US) AppleWebKit/525.13 (KHTML, like Gecko) Chrome/0.A.B.C Safari/525.13', 'Referer': 'http://www.youtube.com/'} req = urllib.request.Request(url,None,headers=baslikbilgileri) opener = urllib.request.build_opener() response = opener.open(req).read() al = re.compile("(/watch\?v=.*)\" class=\"yt-uix-sessionlink yt") al = re.findall(al,response.decode("utf-8")) al = al[:5] print(al) for i in al: i = "https://www.youtube.com"+i req = urllib.request.Request(i,headers=baslikbilgileri) tekil = opener.open(req).read() tekil = (tekil.decode("utf-8")) al = re.compile("<title>(.*)</title>") al = re.findall(al,tekil) i = i.split("""/watch?v=""") i = ''.join(i) i = """ <iframe width="560" height="315" src="https://www.youtube.com/embed/{}" frameborder="0" allowfullscreen></iframe> """.format(i) print("%s : %s" %(al,i))
Bu kod ise search query e göre videoların isimlerini ve linklerini yazdırıyor.
#-*-coding:utf-8-*- import urllib.request import urllib.parse import sys import re al = sys.argv[1] url = "https://www.youtube.com/results?search_query=" + urllib.parse.quote(al) baslikbilgileri = { 'User-Agent': 'Mozilla/5.0 (Windows; U; Windows NT 5.1; en-US) AppleWebKit/525.13 (KHTML, like Gecko) Chrome/0.A.B.C Safari/525.13', 'Referer': 'http://www.youtube.com/'} req = urllib.request.Request(url,headers=baslikbilgileri) opener = urllib.request.build_opener() response = opener.open(req).read() al = re.compile("(/watch\?v=.*)\" class=\"yt-uix-sessionlink yt") al = re.findall(al,response.decode("utf-8")) al = al[:5] for i in al: i = "https://www.youtube.com"+i req = urllib.request.Request(i,headers=baslikbilgileri) tekil = opener.open(req).read() tekil = (tekil.decode("utf-8")) al = re.compile("<title>(.*)</title>") al = re.findall(al,tekil) print(al,i)
http://www.enesergn.net/python-youtube-parser.py
0x656e tarafından 04/Ağu/15 22:14 tarihinde düzenlenmiştir -
-
Bu mu basit :(
-
html parse'de regex ameleliktir, çözdüğünden fazla sorun çıkarır
+ olarak html entity'leri decode etmemişsin title içindeki
YekteranBaymedir tarafından 04/Ağu/15 20:27 tarihinde düzenlenmiştir -
Daft bunu yazdı
html parse'de regex ameleliktir, çözdüğünden fazla sorun çıkarır
+ olarak html entity'leri decode etmemişsin title içindeki
Yok resimde öyle sadece :D o sorun çıkarttı yazdığım kodlarda denersen sıkıntı yok