澳门新葡萄京娱乐场 24

使用PlayX播放B站、优酷等常用的视频网站视频

通过下面的方法,你可以在不带任何广告的观看腾讯所有视频

其实事情是这样的,上个礼拜我去面试一家公司,工作是做爬虫。然后有了以下对话。
面试官:你是自学的,我有一些问题问你,python的浅拷贝和深拷贝是什么?
我:呵呵
面试官:额。。。你能不能说一说你是怎么理解python的面向对象编程?
我:呵呵
面试官:额。。。。好吧,我不问你基础了。你有没有爬过动态的网页?
我:有啊,我爬过豆瓣啊。
面试官:那我让你爬视频网站你怎么爬?F12里查看器是看不到视频地址的!
我:看不到么?
面试官:嗯!
我:不知道。。。。。
面试官:额。。。。你这样让我很为难的,要不你去试试爬腾讯视频。
澳门新葡萄京娱乐场,我:好啊好啊!
面试官:你不要想用那些模拟浏览器来渲染JS哦!直接抓包!

PlayX是gmod游戏中的一个用来播放视频、音频的插件

结果我回到家一看!!什么鬼!!!!

订阅地址:steamcommunity.com/sharedfiles/filedetails/ 
(首先确保你已经安装了flash player 哦:P)

视频播放页地址  取vid b0113x7xx0m

澳门新葡萄京娱乐场 1

本篇文章主要讲解在gmod中如何使用PlayX插件播放常用的国内视频网站(b站,
优酷, 腾讯, 爱奇艺, 搜狐, 乐视)的视频。

加入后门接口

QQ截图20161114234015.png


http://vv.video.qq.com/geturl?vid=b0113x7xx0m&otype=xml&platform=1&ran=0%2E9652906153351068

澳门新葡萄京娱乐场 2

1. 首先在游戏中创建一个PlayX(Q键->实体->PlayX->选择PlayX player->再随便选择一个播放器实体模型)

如图:

澳门新葡萄京娱乐场 3

  创建PlayX播放器

页面上可以看到视频下载地址

QQ截图20161114233935.png

2. 然后开启PlayX播放器(Q键->Options->PlayX->Settings->勾选Enabled选项)

如图:

澳门新葡萄京娱乐场 4

打开播放器

也可以对着屏幕按E键来打开/关闭播放器(当播放器屏幕上有字时播放器为关闭状态)

真的什么地址都没有啊!!!
怎么办?抓包?什么是抓包啊!!!
我只会用selenium加火狐浏览器来模拟爬动态网页啊。。。这工作是没希望了么?
我是个不会放弃的人!!然后就去百度了:
如何用python抓包
如何用python爬JS
后来经人指点我才明白抓包就是去F12里的network找包。。。。
然后我又百度了:
如何用python爬AJAX
仍然没个吊用!
不过我在简书搜索爬腾讯视频时候学会了直接用chrome的模拟手机浏览器可以登录移动端的视频网站,可以直接看到视频的地址链接。
但是。。。。。怎么用代码爬啊??

3. 输入视频URI, 点播视频(Q键->Options->PlayX->Administrate)

然后在右边的Administrate设置栏中Provider一项设置为flash,
在URI输入框中输入点播视频的URI, 点击下方的Open Media按钮

如图:

澳门新葡萄京娱乐场 5

点播视频

腾讯视频是不切片的,再长的视频也是单文件

好了废话到此为止,大家也不想听下去了。我直接进入正题吧!
经过三天的学习,我首先弄清楚了对于这种动态网站的爬取方法。
首先,用network找到一个专门接收请求的真实地址,或者后门网址。

4. Watch it and have fun! 😀


下面来讲解一下常用的国内视频网站(b站, 优酷, 腾讯, 爱奇艺, 搜狐,
乐视)视频URI获取的方法(并不是直接使用浏览器中的网址哦)

 转载

澳门新葡萄京娱乐场 6

1. B站视频URI获取方法(目前只支持有av号的视频, 不支持番剧、直播等其他视频)

QQ截图20161114234944.png

URI格式:

用你所点播的视频的av号替换上面网址 “aid=” 后面的数字,
然后复制这个网址粘贴到PlayX播放器URI输入框中

就是这个,只要在网址里加入参数,它就会返回数据。拉下去,我们可以看道参数

视频av号获取方法: 

直接从浏览器网址中获取

澳门新葡萄京娱乐场 7

b站视频av号

如果点播的视频的网址中还有page信息

澳门新葡萄京娱乐场 8

含有page信息

则用page后面的数字替换URI格式网址中page=后面的数字

澳门新葡萄京娱乐场 9

播放效果:

澳门新葡萄京娱乐场 10

b站视频播放效果

QQ截图20161114235117.png

2. 优酷视频URI获取方法

这里的参数有很多并不是必须的。我先在这里提前说一下,最后我们是要根据观察来找出规律重构出这个网址,因为我们做爬虫的不可能上网站开F12来找信息的。
我们看下网址打开后有什么

URI格式:

用你所点播的视频的id替换上面网址中’XMjkyNTcyNTY4OA’这一串,
然后复制这个网址粘贴到PlayX播放器URI输入框中

This XML file does not appear to have any style information associated with it. The document tree is shown below.
<root>
<exem>0</exem>
<hs>0</hs>
<ls>0</ls>
<tm>1479138997</tm>
<dltype>1</dltype>
<preview>135</preview>
<sfl>
<cnt>0</cnt>

</sfl>

<fl>
<cnt>3</cnt>
<fi>
<sl>0</sl>
<br>64</br>
<id>10703</id>
<name>sd</name>
<lmt>0</lmt>
<sb>1</sb>
<cname>标清;(270P)</cname>
<fs>4795182</fs>

</fi>

<fi>
<fs>8435750</fs>
<sl>1</sl>
<br>235</br>
<id>10712</id>
<name>hd</name>
<lmt>0</lmt>
<sb>1</sb>
<cname>高清;(480P)</cname>

</fi>

<fi>
<lmt>0</lmt>
<sb>1</sb>
<cname>超清;(720P)</cname>
<fs>17133689</fs>
<sl>0</sl>
<br>650</br>
<id>10701</id>
<name>shd</name>

</fi>

</fl>

<s>o</s>
<vl>
<vi>
<br>60</br>
<fst>5</fst>
<vh>480</vh>
<dm>0</dm>
<targetid>1619695007</targetid>
<fclip>1</fclip>
<ul>
<ui>
<vt>200</vt>
<dt>2</dt>
<dtc>10</dtc>
<url>http://222.84.158.26/vhot2.qqvideo.tc.qq.com/</url>

</ui>

<ui>
<dtc>10</dtc>
<url>http://222.84.158.27/vhot2.qqvideo.tc.qq.com/</url>
<vt>200</vt>
<dt>2</dt>

</ui>

<ui>
<url>http://222.84.158.28/vhot2.qqvideo.tc.qq.com/</url>
<vt>200</vt>
<dt>2</dt>
<dtc>10</dtc>

</ui>

<ui>
<vt>0</vt>
<dt>2</dt>
<dtc>10</dtc>
<url>http://video.dispatch.tc.qq.com/96405217/</url>

</ui>

</ul>

<st>2</st>
<videotype>23</videotype>
<hevc>0</hevc>
<dsb>0</dsb>
<ch>0</ch>
<drm>0</drm>
<enc>0</enc>
<vid>q0345aui4cn</vid>
<lnk>q0345aui4cn</lnk>
<fn>q0345aui4cn.p712.mp4</fn>
<fs>8435750</fs>
<fvkey>
79487AB1BD24866699D881C26FC8E62D2131609CE05CC1F18B76EC6481957C2416C28CAE6B21FEE56DCB157706205BC52F3928F51CC08EE79AF4E3157C4940870340CFB9B9407A55FF02A8EA1B560B00A3ADC310709553ED9AC0E8E67705AE5D4097A5370B4BF1AB75B444A3A2EB7F51
</fvkey>

<level>0</level>
<td>135.722</td>
<fmd5>9cac5ea26dbf008bce792704b6d67c97</fmd5>
<ct>21600</ct>
<sp>0</sp>
<cl>
<fc>1</fc>
<ci>
<idx>1</idx>
<cs>8435748</cs>
<cd>135.722</cd>
<cmd5>40a954202d9f663ac2443372afde8d4b</cmd5>
<keyid>q0345aui4cn.10712.1</keyid>

</ci>

</cl>

<share>1</share>
<type>9</type>
<vst>2</vst>
<iflag>0</iflag>
<ti>健忘症老人同一问题连问17次!这名耐心的医生火了</ti>
<vw>848</vw>
<logo>1</logo>
<pl>
<cnt>2</cnt>
<pd>
<url>http://video.qpic.cn/video_caps/0/</url>
<cd>2</cd>
<c>10</c>
<h>45</h>
<w>80</w>
<r>10</r>
<fn>q1</fn>
<fmt>40001</fmt>

</pd>

<pd>
<fmt>40002</fmt>
<url>http://video.qpic.cn/video_caps/0/</url>
<cd>2</cd>
<c>5</c>
<h>90</h>
<w>160</w>
<r>5</r>
<fn>q2</fn>

</pd>

</pl>

</vi>

<cnt>1</cnt>

</vl>

</root>

视频id号获取方法:

优酷网站视频的id号是形如 “XMjkyNTcyNTY4OA” 这样的字符串,
在浏览器网址中就可以找到:

澳门新葡萄京娱乐场 11

优酷视频id

先不管,我们再打开另一个叫做getkey的网址看看里面的东西

播放效果:

澳门新葡萄京娱乐场 12

优酷视频播放效果

<root>
<ct>21600</ct>
<keyid>q0345aui4cn.10712.1</keyid>
<key>
50C099826174CDA1036AC3F8BB82BEC4A6E91005384153F81E3EF477C719CBF0B442C8D533F36402878D2B7C639318CD3078DEFC435C8C865813DBEB689F66D789F410D5115A745C3019F6ABAEBFF53258F4F524A9FE978D26595B6B1732F25992A33CB6F3F2C792FA22CAC171C7087C
</key>

3. 腾讯视频URI获取方法

62154.61</br>
<sp>0</sp>
<sr>0</sr>
<level>0</level>
<s>o</s>
<filename>q0345aui4cn.p712.mp4</filename>
<levelvalid>1</levelvalid>

URI格式:

用你所点播的视频的id替换上面网址中 “e0015bffkiw” 这一串,
然后复制这个网址粘贴到PlayX播放器URI输入框中

</root>

视频id号获取方法:

腾讯视频网站视频的id号不在浏览器网址中, 因此要从网页源码中获取

首先在浏览器中找到想要点播的视频的网页,
然后在空白处右键->查看网页源代码

澳门新葡萄京娱乐场 13

查看网页源代码

然后在网页源代码中搜索vid(使用快捷键Ctrl + F, 在搜索框中输入vid)

在搜索结果中找到形如 

澳门新葡萄京娱乐场 14

的结果, 用双引号引起来的字符串就是视频id

这么多,我们怎么知道爬虫需要哪些东西呢?
network里是可以直接找到video的,我们看一下视频的真实地址
`
http://183.60.171.154/vhot2.qqvideo.tc.qq.com/q0345aui4cn.p712.1.mp4?sdtfrom=v1090&type=mp4& 
vkey=E1B062FA0354A56228FFE25100D1B41F83FEBC012471446999AA386A8FC8A8273AE07BFF6092B4F4AABCE8D98E7F622D71AF44C88B5D3F63A6ED4BFE45457ED0D95E67CA930861F396967521A97ED4154449A61DD95F24A7945262EEB481C3BAC8FE53A2B186F1FC111CE8D32FFBB8C1
&level=0&platform=11&br=60&fmt=hd&sp=0&guid=ED20EE2DB93337F04708204D247CB34A&locid=f9aa455a-6a68-4fd9-a4dd-0dcf179bd6b3&size=8435748&ocid=2535331244
`
很长很复杂对吧!让我们来精简一下,看能把哪些参数删掉。我下面就直接放出我爬虫爬到的精简版的地址吧
`
http://222.84.158.29/vhot2.qqvideo.tc.qq.com/q0345aui4cn.p701.1.mp4?vkey=46994EBB71F530AC11AB11EFA265508534036712DA0187B3939F9FDE9062FBA7B5C37F0C80D72626AEEB3CD87A15B19CB064817D98C4DD0D43D113804FE8F50F67DE15DD2FC48CC06FA9AE67678FD2CE9363358A1AC9BBCDB831B1AF79E7B105
`
首先我们看到 两个地址的IP,VKEY是不一样的。IP这个好解释,视频源不一样,地址不一样。然后Vkey它是一直在变化的,每次打开getkey这个页面都在变。我分析下一个视频地址精简后需要哪些东西
Ip=http://222.84.158.29/vhot2.qqvideo.tc.qq.com/(getinfo页面中有)
filenname=VID +P701.1.MP4(`P701其实由getinfo中的ID的1701去掉10,改为P获得。而.1.MP4是属于后缀.2.mp4应该也能播放,只要有这个视频源`)
vkey=46994EBB71F530AC11AB11EFA265508534036712DA0187B3939F9FDE9062FBA7B5C37F0C80D72626AEEB3CD87A15B19CB064817D98C4DD0D43D113804FE8F50F67DE15DD2FC48CC06FA9AE67678FD2CE9363358A1AC9BBCDB831B1AF79E7B105(`这个在getkey页面中获得`)

好了所以我们来重新整理下思路吧!
我要在一开始的视频页面获得vid(`这个我不想解释自己开F12查看器`)
然后在getinfo页面获得ID,拼接filename
在getkey页面获得Vkey
最后拼接成我们的视频url
这里我放出我精简过了的getinfo和getkey网址,只要更换vid,filename就额可以打开了
`getinfo='http://vv.video.qq.com/getinfo?vids={vid}&otype=xlm&defaultfmt=fhd'`
`getkey='http://vv.video.qq.com/getkey?format={id}&otype=xml&vt=150&vid={vid}&ran=0%2E9477521511726081\\&charge=0&filename={filename}&platform=11'`
这里我得强调,getkey的参数是由getinfo中获得的!
分析得差不多了,我们开始写爬虫把!!

播放效果:

澳门新葡萄京娱乐场 15

腾讯视频播放效果

from urllib.request import Request, urlopen
from urllib.error import URLError,HTTPError
from bs4 import BeautifulSoup
import re

4. 爱奇艺视频URI获取方法

print(‘https://v.qq.com/x/page/h03425k44l2.html\n
\
https://v.qq.com/x/cover/dn7fdvf2q62wfka/m0345brcwdk.html\n
\
http://v.qq.com/cover/2/2iqrhqekbtgwp1s.html?vid=c01350046ds’)
web = input(‘请输入网址:’)
if re.search(r’vid=’,web) :
patten =re.compile(r’vid=(.*)’)
vid=patten.findall(web)
vid=vid[0]

URI格式:

用你所点播的视频的id替换上面网址中 “25c38c6cd64fe6de9c4b707ed7ca8f56”
这一串, 用你所点播的视频的tvid替换上面网址中 “367710700” 这一串,
然后复制这个网址粘贴到PlayX播放器URI输入框中

else:
newurl = (web.split(“/”)[-1])
vid =newurl.replace(‘.html’, ‘ ‘)

视频id号和tvid号获取方法:

网页源代码中搜索vid(使用快捷键Ctrl + F, 在搜索框中输入vid)

在搜索结果中找到形如

澳门新葡萄京娱乐场 16

的结果, vid一项用双引号引起来的字符串就是视频id号,
tvid一项双引号引起来的字符串就是视频的tvid号

从视频页面找出vid

getinfo=’http://vv.video.qq.com/getinfo?vids={vid}&otype=xlm&defaultfmt=fhd’.format(vid=vid.strip())
def getpage(url):
req = Request(url)
user_agent = ‘Mozilla/5.0 (Windows NT 6.1) AppleWebKit’
req.add_header(‘User-Agent’, user_agent)
try:
response = urlopen(url)
except HTTPError as e:
print(‘The server couldn\’t fulfill the request.’)
print(‘Error code:’, e.code)
except URLError as e:
print(‘We failed to reach a server.’)
print(‘Reason:’, e.reason)
html = response.read().decode(‘utf-8’)
return(html)

播放效果:

澳门新葡萄京娱乐场 17

爱奇艺视频播放效果

打开网页的函数

a = getpage(getinfo)

soup = BeautifulSoup(a, “html.parser”)
for e1 in soup.find_all(‘url’):
ippattent =
re.compile(r”((?:(2[0-4]\d)|(25[0-5])|([01]?\d\d?))\.){3}(?:(2[0-4]\d)|(255[0-5])|([01]?\d\d?))”)
if re.search(ippattent,e1.get_text()):
ip=(e1.get_text())
for e2 in soup.find_all(‘id’):
idpattent = re.compile(r”\d{5}”)
if re.search(idpattent,e2.get_text()):
id=(e2.get_text())
filename=vid.strip()+’.p’+id[2:]+’.1.mp4′

5. 搜狐视频URI获取方法

找到ID和拼接FILENAME

getkey=’http://vv.video.qq.com/getkey?format={id}&otype=xml&vt=150&vid={vid}&ran=0%2E9477521511726081\
&charge=0&filename={filename}&platform=11′.format(id=id,vid=vid.strip(),filename=filename)

URI格式:

用你所点播的视频的id替换上面网址中 “2152833” 这一串,
然后复制这个网址粘贴到PlayX播放器URI输入框中

利用getinfo中的信息拼接getkey网址

b = getpage(getkey)

key=(re.findall(r'<key>(.*)<\/key>’,b))

videourl=ip+filename+’?’+’vkey=’+key[0]

print(‘视频播放地址 ‘+videourl)

视频id号获取方法:

网页源代码中搜索vid(使用快捷键Ctrl + F, 在搜索框中输入vid)

在搜索结果中找到形如

澳门新葡萄京娱乐场 18

的结果, 3943640就是视频的id

完成了

![`IZ`)%W(BYA9I6~H%@_GE(5.png](http://upload-images.jianshu.io/upload_images/2577034-c71f4f57d83efd57.png?imageMogr2/auto-orient/strip%7CimageView2/2/w/1240)



然后我就把爬虫上传到github发给面试官了,满心欢喜的等着上班结束讨饭生活!
但素!!
面试官:嗯,不错!居然真的做出来了!你的期望薪酬是多少?
我:嗨,这个吗我没经验。你随便给我个六七千打发我就可以了!
面试官:嗯,你没有经验我们是只能按应届生标准给你薪酬的。
我:没事没事,薪酬不重要。最重要先让我进这个行业积累经验!
过了一会
面试官:其实。。。。我们老大说你基础太差了,虽然你自学能力不错。但是你懂数据结构与算法吗?
我:不会。。。。
面试官:其实爬虫我们已经开发好了,接下来要做的是日志分析和推荐系统开发。
我:。。。。。。

所以,我没拿到offer,继续要饭。。。。
我又不看腾讯视频,爬腾讯也没用,把源码放上来大家学习下吧。谁爱爬自己爬,还可以免广告。
 o(╥﹏╥)o 我什么时候才能找到工作啊???
算了,明天我就学前端去,争取年底前当个切图仔!!

播放效果:

澳门新葡萄京娱乐场 19

搜狐视频播放效果

5. 乐视视频URI获取方法

URI格式:

用你所点播的视频的id替换上面网址中 “26849015” 这一串,
然后复制这个网址粘贴到PlayX播放器URI输入框中

视频id号获取方法:

网页源代码中搜索vid(使用快捷键Ctrl + F, 在搜索框中输入vid)

在搜索结果中找到形如

澳门新葡萄京娱乐场 20

的结果, 30558669就是视频的id

播放效果:

澳门新葡萄京娱乐场 21

乐视视频播放效果

6. 注意事项

有一些网站的视频是不允许站外播放的

澳门新葡萄京娱乐场 22

不支持站外播放的视频

此时就可以将Provider设置为non-browsable webpage

澳门新葡萄京娱乐场 23

然后将浏览器中的网址直接复制到URI输入框中,
以网页的形式观看(这种方法适合于能够自动播放视频的网站)

澳门新葡萄京娱乐场 24

以网页的形式播放视频


好了, 本篇教程就到这里啦, 喜欢折腾的小伙伴们不妨去尝试一下哦! 😛       

                                                                       
                                                                       
                                                                       
                                         –By 轻描淡写

发表评论

电子邮件地址不会被公开。 必填项已用*标注