发布时间:2023-04-14 15:30
首先澄清一下,我用Python收集这些视频,绝不是想做别的什么,真的只是用来做动态壁纸,大家不要误会!我不是那样的人~
这样的不过份吧
1、环境
Python
pycharm
没有或者不会安装可以看主页左侧或者文章最下方找我
2、模块使用
requests
requests 需要手动安装一下 ,win + R 输入cmd 输入安装命令 pip install 模块名 (如果你觉得安装速度比较慢, 你可以切换国内镜像源)
re
json
这两个是内置模块,不需要安装,Python环境安装好就可以了。
3、关于模块安装失败
如何安装python第三方模块:
安装失败原因:
失败一: pip 不是内部命令
解决方法: 设置环境变量
失败二: 出现大量报红 (read time out)
解决方法: 因为是网络链接超时, 需要切换镜像源。
清华:https://pypi.tuna.tsinghua.edu.cn/simple
阿里云:https://mirrors.aliyun.com/pypi/simple/
中国科技大学 https://pypi.mirrors.ustc.edu.cn/simple/
华中理工大学:https://pypi.hustunique.com/
山东理工大学:https://pypi.sdutlinux.org/
豆瓣:https://pypi.douban.com/simple/
例如:pip3 install -i https://pypi.doubanio.com/simple/ 模块名
4、配置pycharm里面的python解释器
5、Python想要兼职接外包应该学习什么?
外包是什么? 是指别人花钱请你帮他写程序, 根据甲方的需求定制化开发程序软件, 从而获得一定报酬。
目前关于爬虫+数据分析外包相对而言会多一些。
比如:
这些是普遍存在的外包需求
根据外包的需求以及难易程序 外包的收费情况也是不一样的, 按照分布计算。
爬虫和数据分析外包 一般情况写外包的周期相对而言会比较多短
网站开发的外包难度以及耗时相当而言会大一些,比如开发后台数据管理系统 / 某公司企业官网 / 或者学生毕设等等,但是价格相对而言都是比较高的,网站开发价格普通是上千。
6、Python找工作就业方向以及薪资待遇情况
Python找工作方向主要是
开发工程师 <网站开发/全栈开发>
北京平均薪资23K
应届生15K
1-3年 16.9K
3-5年22.9K
爬虫工程师
北京平均薪资22.5K
应届生16.7K
1-3年 18.1K
3-5年 24K
数据分析师
北京平均薪资25.3K
应届生13.5K
1-3年 19.4K
3-5年26.2K
以上数据来源于科大招聘网站
采集数据内容, 要知道我们想要内容是来自哪里
<开发者工具进行抓包分析>
I. F12打开打开发者工具
II. 刷新网页 让数据重新加载一遍
III. 这个网站是一个m3u8视频内容
正常情况, 一个视频完整的内容
m3u8视频内容 会整个完整视频内容,分割成很多个小视频片段
所以我们得去找一个文件内容
最好的搜索方式, 是根据ts文件url去搜索m3u8文件
请求获取网页源代码 就可以得到m3u8文件 >>> 所有视频片段就得到了 >>> 合成为一个整体的视频内容
import time
import requests # 数据请求模块
import re # 正则表达式模块
import json
import pprint
for page in range(3, 29):
print(f'正在采集第{page}页的数据')
time.sleep(1)
link = 'https://www.acfun.cn/u/29946310'
data = {
'quickViewId': 'ac-space-video-list',
'reqID': page+1,
'ajaxpipe': '1',
'type': 'video',
'order': 'newest',
'page': page,
'pageSize': '20',
't': '1653659024877',
}
headers = {
'referer': 'https://***/u/29946310',
'user-agent': 'Mozilla/5.0 (Windows NT 10.0; WOW64) AppleWebKit/537.36 (KHTML, like Gecko) Chrome/101.0.4951.54 Safari/537.36'
}
response = requests.get(url=link, params=data, headers=headers)
# pprint.pprint(response.text)
ac_id_list = re.findall('atomid.*?:.*?"(\d+).*?"', response.text)
print(ac_id_list)
for ac_id in ac_id_list:
url = f'https://***/v/ac{ac_id}'
headers = {
'referer': f'https://***/u/{ac_id}',
'user-agent': 'Mozilla/5.0 (Windows NT 10.0; WOW64) AppleWebKit/537.36 (KHTML, like Gecko) Chrome/101.0.4951.54 Safari/537.36'
}
response = requests.get(url=url, headers=headers)
title = re.findall('(.*?) - AcFun弹幕视频网 - 认真你就输啦 \(\?ω\?\)ノ- \( ゜- ゜\)つロ ', response.text)[0]
html_data = re.findall('window.pageInfo = window.videoInfo = (.*?);', response.text)[0]
json_data = json.loads(html_data)
m3u8_url = json.loads(json_data['currentVideoInfo']['ksPlayJson'])['adaptationSet'][0]['representation'][0]['backupUrl'][0]
m3u8_data = requests.get(url=m3u8_url, headers=headers).text
m3u8_data = re.sub('#E.*', '', m3u8_data).split()
print(title)
print(m3u8_url)
不可抗拒的原因所以地址我删了,评论区置顶,也有对应的视频教程,可以下方扫码。
兄弟们快去试试吧!