最近最学习爬虫,今天我们来看下如何爬取西瓜视频的地址。
本文阅读指导,爬虫基于chrome浏览器F12开发工具进行的,需要知道关于chrome浏览器F12基础的功能,不了解的童鞋请移步:【Python】Chrome浏览器F12开发者工具使用
本文会用到两个在线工具:
json解析工具:https://www.json.cn/
base64解析工具:https://www.sojson.com/base64.html
好了,了解完的童鞋咱们往下走。
一、基础流程
1、获取到视频瀑布流
2、获取到详情视频的地址
3、写入文件
二、获取视频瀑布流
1、通过F12开发工具获取到详情url
点击那个鼠标图标,鼠标移动到页面(cf大头模式),这样就能获取到页面对应源码位置。
点击进入详情页,可以看到详情页url跟href地址相差“https://www.ixigua.com/”而已。
2、通过F12开发工具获取到瀑布流url
基本流程是:network -->XHR-->Headers-->Resporse
大家可能看到的数据是这样的,告诉大家一个好方法。直接双击左边的链接就能跳转如下。
然后用到在线工具json解析工具,将上文全部复制粘贴到在线工具中去。就会给你在右边给你解析出来。
这样就获取到了瀑布流详情,在对比详情页url。很容易猜测到时将videoId加上“https://www.ixigua.com/i”补全成https://www.ixigua.com/i+videoId
如下,补全为:
3、测试
将上面补全后的url输入到浏览器回车,发现跟猜测的是一模一样。
三、获取到详情视频的地址
这一章节参考:https://www.jianshu.com/p/6ca1344a09db
但是,不能直接拿下来用。好几处细节需要修改。
1、需要验证url是否很有效
验证如下url是否还是能够返回串。
如下:此时验证还是可以的。
然后同样的拷贝到json解析数据。如下图。
2、获取video_id
用作者的方法查询video_id得到
最后得到过滤 "vid":" *** " 这个字符串。
然后修改代码如下。
def get_video_id(url):
#获取视频id
resp = requests.get(url, headers=headers)
# 获取video_id
#print(resp.text)
search = re.search("\"vid\":\"([^\"]+)\",", resp.text)
print(search.group(1))
return search.group(1)