时间:2021-05-23
发现视频的url在id为“JprismPlayer”的div标签下的video标签src属性中,xpath解析网页
video_url = tree.xpath("//div[@id='JprismPlayer']/video/@src")但得到的返回值为空,也就是说这个video标签在原网页中并不存在,很可能是动态加载出来的
果然在动态请求中发现了包含视频url的json数据
可是发起请求后拿到的json数据却和抓包工具中看到的不一样,试着在请求头中加入Referer参数,查看referer可以发现,它最后video_后面跟的是首页中视频的编号
{ "resultCode":"1", "resultMsg":"success", "reqId":"fd1c910d-f49a-431a-b9a4-9c193c3c1983", "systemTime": "1611666178518", "videoInfo":{"playSta":"1","video_image":"https://image1.pearvideo.com/cont/20210125/11107897-184717-1.png","videos":{"hdUrl":"","hdflvUrl":"","sdUrl":"","sdflvUrl":"","srcUrl":"https://video.pearvideo.com/mp4/third/20210125/1611666178518-11107897-181816-hd.mp4"}}}在headers中加入Referer后顺利拿到json数据
可向json数据中的视频url发起请求拿到的却是404页面
这里花了很长时间去想哪里有问题,把前面的步骤理了很多遍才发现,其实动态请求返回的json数据中的视频url和主页video标签中的视频url根本不一致
首页中加载出来的视频链接是正确的,可以顺利的拿到视频,而json数据中的链接则会返回404。把他们进行对比,可以看到他们前半部分是一样的,但到了红线框住的地方就不一样了。
正确的url是 cont-视频id-
而json数据中的url这个部分是 一串数字
那只要把这一串数字改成 cont-视频id- 的形式就能获得正确的视频url了
其实最难的地方是获取正确的视频url,中间过程比较绕。只要找到这个地址,再加上从首页拿到的视频id就可以顺利拿到视频了。
如果要爬取整个首页视频只需要重新设置xpath路径就可以了。
以上就是Python爬取梨视频的示例的详细内容,更多关于Python爬取梨视频的资料请关注其它相关文章!
声明:本页内容来源网络,仅供用户参考;我单位不保证亦不表示资料全面及准确无误,也不保证亦不表示这些资料为最新信息,如因任何原因,本网内容或者用户因倚赖本网内容造成任何损失或损害,我单位将不会负任何法律责任。如涉及版权问题,请提交至online#300.cn邮箱联系删除。
python爬虫-梨视频短视频爬取(线程池)示例代码importrequestsfromlxmlimportetreeimportrandomfrommulti
本实例主要进行线程池创建,多线程获取、存储视频文件梨视频:利用线程池进行视频爬取#爬取梨视频数据importrequestsimportrefromlxmlim
普通方法:爬取梨视频importreimporttimeimportrandomimportrequestsfromlxmlimportetreestart_t
之前我们使用lxml对梨视频网站中的视频进行了下载,感兴趣的朋友点击查看吧。下面我用scrapy框架对梨视频网站中的视频标题和视频页中对视频的描述进行爬取分析:
这篇文章主要介绍了Python爬取豆瓣视频信息代码实例,文中通过示例代码介绍的非常详细,对大家的学习或者工作具有一定的参考学习价值,需要的朋友可以参考下这里是爬