如何取得' 梨视频中的视频地址‘’?
小白如果有满意的答案,一定会及时结帖的,恳请路过的大佬、大神们帮助。我的目标是要爬取:梨视频中-生活-最热中的4个视频。这个只是练习用。--我正在学习的爬虫教程视频,老师讲解的代码已经挂掉了,所以我只好自己写。
以下是我的分析:
1. 点开 其中一个这个梨视频的《超好听!中国老人演绎拉美歌曲》的网址进行分析和观察
https://www.pearvideo.com/video_1703247
(1)打开检查,抓包,定位到video_1703247,这个数据包的response并没有这个视频真正的地址,由此判断,这个视频地址是动态加载。
(2)点击XHR,发现一个ajax请求,response里面貌似包含 视频地址。请问以下蓝色的URL这个是不是真正的视频地址呢?
{
"resultCode":"1",
"resultMsg":"success", "reqId":"913ffda9-383e-4665-b927-8ac0b18ea488",
"systemTime": "1603642230586",
"videoInfo":{"playSta":"1","video_image":"https://image.pearvideo.com/cont/20201023/10008579-151234-1.png","videos":{"hdUrl":"","hdflvUrl":"","sdUrl":"","sdflvUrl":"","srcUrl":"https://video.pearvideo.com/mp4/third/20201023/1603642230586-10008579-151057-hd.mp4"}}
}
下面是我的代码,可是我爬下来,结果却没有这个视频地址,是我的代码写错了吗?
import requests
from lxml import etree
headers = {
'User-Agent': 'Mozilla/5.0 (Macintosh; Intel Mac OS X 10_12_0) AppleWebKit/537.36 (KHTML, like Gecko) Chrome/72.0.3626.121 Safari/537.36'
}
url = 'https://www.pearvideo.com/category_5'
page_text = requests.get(url=url, headers=headers).text
tree = etree.HTML(page_text)
#li_list = tree.xpath('//div[@id="listvideo-list clearfix"/ul/li]')
li_list = tree.xpath('//ul[@id="listvideoListUl"]/li')
for li in li_list:
detail_url = 'https://www.pearvideo.com/'+ li.xpath('./div/a/@href')
name = li.xpath('./div/a/div/text()') + '.mp4'
id = li.xpath('./div/a/@href').split('_')
#print(detail_url, name,id)
#https://www.pearvideo.com/videoStatus.jsp?contId=1703247&mrd=0.9360606488589007
ajax_url = 'https://www.pearvideo.com/videoStatus.jsp'
params = {
'contId': id,
'mrd': '0.9360606488589007'
}
ajax_page_text = requests.get(url=ajax_url, headers=headers, params=params).json()
print( ajax_page_text)
https://video.pearvideo.com/mp4/third/20201023/cont-1703247-10008579-151057-hd.mp4
这个是真实地址 本帖最后由 青松100 于 2020-10-26 09:09 编辑
wp231957 发表于 2020-10-26 09:03
https://video.pearvideo.com/mp4/third/20201023/cont-1703247-10008579-151057-hd.mp4
这个是真实地址
非常谢谢大神的帮助。
那能不能教我,这个地址是咋找出来的呢?
我在1楼中的地址和您找到地址相比较,发现很接近,但是其中有个别参数不一样。
我现在只学到正则,XPATH, BS4
还没学到高级的,能不能先用初级的知识教我,不要用selenium之类的。 wp231957 发表于 2020-10-26 09:03
https://video.pearvideo.com/mp4/third/20201023/cont-1703247-10008579-151057-hd.mp4
这个是真实地址
万分感谢大神。
能不能教我咋找出视频地址?
青松100 发表于 2020-10-26 09:10
万分感谢大神。
能不能教我咋找出视频地址?
没太细研究这个网站,有个别的视频就是你一楼的地址个别视频就是拼接的地址 我还有一个问题,为啥1楼中我的代码,爬出来的不是 1楼中的那些字典(response 响应数据),而是:如下:
{'resultCode': '5', 'resultMsg': '该文章已经下线!', 'systemTime': '1603675273247'}
{'resultCode': '5', 'resultMsg': '该文章已经下线!', 'systemTime': '1603675273599'}
{'resultCode': '5', 'resultMsg': '该文章已经下线!', 'systemTime': '1603675273906'}
{'resultCode': '5', 'resultMsg': '该文章已经下线!', 'systemTime': '1603675274223'} 本帖最后由 青松100 于 2020-10-26 09:27 编辑
wp231957 发表于 2020-10-26 09:21
没太细研究这个网站,有个别的视频就是你一楼的地址个别视频就是拼接的地址
我没看懂您是啥意思。
我的目的,不是要您给我某个视频的真实地址。--这个只是练习用的,我随便找来的一个视频。我的目的是要学会得到这个视频的地址的方法。
我现在只学会了XPATH, BS4,正则的基本语法,还没学到SELENIUM。要是可以的话,等您有空,麻烦您到时给分析一下,用这些基本的方法,教教我吧?(不要太高级的爬虫方法,我现在正在学某爬虫教程,还没学到那么深。) 青松100 发表于 2020-10-26 09:26
我没看懂您是啥意思。
我的目的,不是要您给我某个视频的真实地址。--这个只是练习用的,我随便找 ...
研究方向出现错误,爬虫问题 的难点并不是xpathbs4 正则什么的,这些都是浮云
真正的难点是如何获取我们想要的东东,也就是分析网站(网页) 浏览器的F12点击XHR是找到了你说的ajax
但是F12的媒体里面就有视频源地址 kogawananari 发表于 2020-10-26 11:14
浏览器的F12点击XHR是找到了你说的ajax
但是F12的媒体里面就有视频源地址
非常感谢,找到了。我下午再研究一下,可能会有后续的问题,希望到时您能再次帮助。
青松100 发表于 2020-10-26 11:48
非常感谢,找到了。我下午再研究一下,可能会有后续的问题,希望到时您能再次帮助。
把 Referer 加进去就能找到mp4了
jtxs0000 发表于 2020-10-26 13:35
把 Referer 加进去就能找到mp4了
大神,咋加啊?
另外,为啥你可以完整得到AJAX的数据包的响应,为啥我1楼的代码,输出来的却是:
{'resultCode': '5', 'resultMsg': '该文章已经下线!', 'systemTime': '1603675273247'}
{'resultCode': '5', 'resultMsg': '该文章已经下线!', 'systemTime': '1603675273599'}
{'resultCode': '5', 'resultMsg': '该文章已经下线!', 'systemTime': '1603675273906'}
{'resultCode': '5', 'resultMsg': '该文章已经下线!', 'systemTime': '1603675274223'}
麻烦说详细一点,小白没有基础。谢谢 青松100 发表于 2020-10-26 14:13
大神,咋加啊?
另外,为啥你可以完整得到AJAX的数据包的响应,为啥我1楼的代码,输出来的却是:
请求头你肯定会吧,里面再加上Referer
最终效果
本帖最后由 青松100 于 2020-10-27 05:44 编辑
jtxs0000 发表于 2020-10-26 14:19
请求头你肯定会吧,里面再加上Referer
能加你吗?
这里发个链接也要审核,所以,请版主大大和各位网友见谅。 本帖最后由 jtxs0000 于 2020-10-27 10:38 编辑
青松100 发表于 2020-10-26 14:48
能加你吗?
这里发个链接也要审核,所以,请版主大大和各位网友见谅。
加了 jtxs0000 发表于 2020-10-26 15:11
加了
我没看到您呀? 本帖最后由 466337418 于 2020-11-19 18:30 编辑
楼主,我也是跟你一样的问题,我加了referer还是获取不了,ajax数据还是有问题,可否解答一下啊
已经处理好了,是param参数的顺序位置影响
页:
[1]