站在巨人的肩膀上抓取vip视频播放地址
此文章仅仅为练习简单爬虫所作.
简单爬虫三步曲
1.明确需求,找到能够满足需求的网页
目标:给我一个官方播放vip电影的地址,输出一个能够放在浏览器直接播放电影的链接
如何解析各大主流视频网站的视频原播放地址,已经有巨人做好了.搜索视频解析 这里仅仅做个猜想:前期需要对播放视频网站进行抓包,筛掉无关请求,挨个分析剩下的.从后往前分析会更好,因为最终一定有可以可以播放的链接被抓包到,并且现在电影多数都是分段式的,一个电影可以分成成百上千个小段.这些小段视频链接的拼接规则则要去前面的请求分析得来,不多赘述.
我们搜索解析视频
后直接选取第一个全民解析-vip视频在线解析 借助这个视频解析平台实现既定的需求.
2.分析网页html,定位目标数据
可以看到 屏幕快照 2018-07-25 下午2.54.33.png在播放地址栏粘贴原官方播放地址后点击Go-点击开始解析稍等即可播放
看看点击时触发什么事件.右击按钮,选择检查即可定位到指定html元素位置.
点击定位.png
我们可以发现到一个叫做dihejk()
的点击事件,分析后发现它最终要拿到下面三个option中的选中的一个的value.
<option value="http://jx.598110.com/zuida.php?url=" selected="">③号通用vip引擎系统【稳定通用】</option>
<option value="http://jx.598110.com/duo/index.php?url=" selected="">②号通用vip多线路系统【稳定通用】</option>
<option value="http://jx.598110.com/index.php?url=" selected="">①号通用vip引擎系统【稳定通用】</option>
选择http://jx.598110.com/zuida.php?url=
尝试在 url
后拼接上视频官方播放的地址,在浏览器中粘贴竟短暂等待后就直接播放了.
3.爬取整个html内容,写正则将目标数据揪出来
那么接下来的事情就是写代码爬取这个网站的html.将这三个 option value
的值匹配出来.上代码
import re
from urllib import request
if __name__ == '__main__':
# 视频原播放url 示例: http://www.iqiyi.com/v_19rr9tql50.html
origin_vip_url = input('please input original url')
# 这个网页中藏着用于解析视频播放url的url们
qmail_url = 'http://www.qmaile.com/'
# head配置
head = {
'User-Agent':'Mozilla/5.0 (Macintosh; Intel Mac OS X 10_13_5) AppleWebKit/537.36 (KHTML, like Gecko) Chrome/67.0.3396.99 Safari/537.36',
'Referer': "http://www.qmaile.com/"
}
# 创建一个request
qmail_url_req = request.Request(url = qmail_url, headers = head)
# 获得数据
qmail_url_res = request.urlopen(qmail_url_req)
# 转换成html
res_html = qmail_url_res.read().decode('utf-8')
# 正则
pat = '<option value="(.*?)\?'
# 找出三个用于解析视频地址的目标url们
target_parse_urls = re.findall(pat, res_html, re.S)
result_play_url = []
if len(target_parse_urls) > 0:
for each_parse_url in target_parse_urls:
each_play_url = each_parse_url + '?' + 'url=' + origin_vip_url
result_play_url.append(each_play_url)
else:
print('没有找到')
# 最后一个比较好使
print(result_play_url)
在命令行执行该模块,输入想解析的官方播放地址,即可生成三个直接播放地址.
换一个平台基本上也就是差不多的流程.借助别人的平台,实现这个需求似乎并不难.难的是解析视频的过程,下次再深入讨论
网友评论