作者coeric ( )
看板Python
标题Re: [问题] youtube影片爬虫问题
时间Tue Jun 6 17:13:51 2017
原本我的作法是:(其实是学习大数学堂的作法)
先requests下载的影片页面 剖析出html.content後
捞出args中的url_encoded_fmt_stream_map
可是从3月中左右,就找不到这东西了
(应该说看得到,可是似乎是抓不到?被藏在js里面.....试过用Selenium,一样拉不出来
)
後来,曾经尝试,至少自己手动(眼动)找影片的连结网址
却一直都是无法下载的状况,或是跑个几百K到1MB 就结束了
(事後证实,连结不完全对......)
改由zerof大大的解惑
换个方式,找到正确的网址後,就可以正常下载了......
感恩阿!!
※ 引述《neil987 (R5大小姐-EX人品崩坏)》之铭言:
: 如题 最近想用爬虫做个youtube影片下载器
: 灵感来源是http://kej.tw/flvretriever/ 这个YOUTUBE下载网站
: 步骤是先贴上网址,然後下载一个影片info
: 然後把info里面的内容贴上网页给网页分析出连结
: 影片info里面大概就是就是从某个网址request回来的内容
: 影片实体连结是url_encoded_fmt_stream_map之後的url=video_real_link
: 随便举一个影片的连结
: 大概长这样
: https://r6---sn-3cu-3iie.googlevideo.com/videoplayback?lmt=1458XXXX.....(下略
: 缩:https://goo.gl/L8ug5f
: 点进去是个真实的影片连结
: 所以上实作(Python 2.7):
: import requests,re,urlparse,shutil
: link = "https://www.youtube.com/watch?v=qQ7g1tfEGFc"
: res = requests.get(link).text
: co = re.compile('"url_encoded_fmt_stream_map":"(.*?),"fade')
: m = co.search(res)
: url_all = m.group(1).decode('unicode_escape')
: a = urlparse.parse_qs(url_all)
: print a['url']
: 不过这边取得的影片连结就不对了
: =>
: https://r6---sn-3cu-3iie.googlevideo.com/videoplayback?key=yt6&XXXXX
: 缩:https://goo.gl/vbZVeB
: 然後直接对浏览器丢这个网址会出现403
: 感觉上就是没有抓到影片的真实位置
: 问题应该有2个可能
: 1.一开始跟原影片网址要request时的Header资讯
: 2.不该跟原始网址要request,而是其他网址(api之类的)
: 还请前辈们指教 感谢~~
--
家教经验浅谈:
http://www.wretch.cc/blog/coeric&category_id=8897699
--
※ 发信站: 批踢踢实业坊(ptt.cc), 来自: 42.73.181.155
※ 文章网址: https://webptt.com/cn.aspx?n=bbs/Python/M.1496740434.A.E5C.html