这个项目是实践课正在做的,想法来源于现在的话题识别与跟踪技术,当前的话题识别与跟踪基本是对热点话题文本进行识别与跟踪。
由于短视频的流行,我想做的是对视频话题进行识别与跟踪。
用了一晚上时间写出了demo,大致走完了前期数据获取的流程,后面的工作基本就是重复代码去进行大量数据的获取。
中间遇到了一些问题,在这里大致总结一下:(本篇仅涉及爬虫方面)
- 在对微博页面元素进行定位时,明明审查元素中可以定位到,但是代码却无法定位到内容
“查看网页源代码”的代码内容是服务器发送到浏览器的原封不动的源代码,不包括页面动态渲染的内容
“审查元素”包括源代码+js动态渲染的内容,即最终展示的html内容
其实如果去看源代码的话,就能发现网页源码中都是js代码,并没有元素标签等
所以去XHR中获取数据,首先看Ajax请求,如果响应中数据很少或者没有,可能就要考虑数据是js动态加载的内容了
对XHR中Ajax响应的json数据进行分析处理,可以找到视频的url。get请求获取字节流即可下载保存
每个用户的Ajax-url其实都差不多,只有UID是不一样的 - 在对页面渲染后的标签进行分析时,有一个video标签下的url链接前有Blob,然后跳转这个url就无法获取视频
这是一种加密的手段,也是一种反爬措施。
但是在XHR中可以获取视频的m3u8文件(一种视频格式),大量的.ts文件就是视频片段,到这其实就已经找到文件的真实地址了 - 写代码的时候使用requests请求报错“requests.exceptions.SSLError:”,找了很久原因,后来发现是因为电脑开了代理,代理关掉就没有报错了。(没事别开代理)