前言 嗨喽!大家好呀,这里是魔王模块使用:requestspipinstallrequests(数据请求第三方模块)re正则表达式去匹配提取数据json开发环境:Python3。8解释器Pycharm2021。2版本建议 winR输入cmd输入安装命令pipinstall模块名如果出现爆红可能是因为网络连接超时切换国内镜像源爬虫案例实现,固定思路流程:一。明确需求采集视频内容,先分析一个视频是从哪里获取通过开发者工具进行抓包分析,分析视频数据可以从哪里获取A站这个视频内容格式m3u8视频内容当我们网站视频格式是m3u8的时候,有一个专门存放所有ts视频片段的文件二。代码实现步骤:发送请求获取数据解析数据保存数据1。发送请求,对于视频播放页面url地址发送请求2。获取数据,获取服务器返回response响应数据3。解析数据,提取我们想要的数据内容视频标题以及m3u8链接4。发送请求,对于m3u8链接发送请求5。获取数据,获取服务器返回response响应数据6。解析数据,提取所有ts文件url〔视频片段〕7。保存数据,把所有视频保存下来,然后合成为一个整体视频内容代码importrequests数据请求模块pipinstallrequests在cmd里面输入命令importre导入正则表达式模块内置模块importjsonimportpprint格式化输出模块forpageinrange(1,17):print(f正在采集第{page}页的数据内容)listurlhttps:www。acfun。cnu45321802批量ctrlR选中目标data{quickViewId:acspacevideolist,reqID:page1,ajaxpipe:1,type:video,order:newest,page:page,pageSize:20,t:1649944573765,}headers{cookies:你的cookie,UserAgent:Mozilla5。0(WindowsNT10。0;Win64;x64)AppleWebKit537。36(KHTML,likeGecko)Chrome100。0。4896。75Safari537。36}get请求有一个params参数post请求data参数responserequests。get(urllisturl,paramsdata,headersheaders)print(response。text)idlistre。findall(ahref。?ac(。?),response。text)forindexinidlist:videoidindex。replace(,)1。发送请求,对于视频播放页面url地址发送请求用python代码去模拟浏览器对于url地址发送请求videourlfhttps:www。acfun。cnvac{videoid}确定请求url地址请求头用伪装python代码,为了被服务器识别出来是爬虫程序一种简单反反爬手段当你加ua得到数据的时候,可能要cookie需要登陆才能获得数据的,需要加cookie用户信息,常用于检测是否登陆账号headers{cookies:你的cookie,UserAgent:Mozilla5。0(WindowsNT10。0;Win64;x64)AppleWebKit537。36(KHTML,likeGecko)Chrome100。0。4896。75Safari537。36}通过requests模块里面get请求方式,对于url地址发送请求,并且携带上headers请求头伪装,最后用response自定义变量接收返回数据responserequests。get(urlurl,headersheaders)2。获取数据print(response。text)3。解析数据通过re模块里面findall的方法在response。text里面去找寻标题数据re。S匹配换行正则表达式提取出来的数据返回都是列表数据类型实现过程不重要,方式方法很多,你喜欢用哪个都可以只要可以取到数据都OKtitlere。findall(title(。?)AcFun弹幕视频网认真你就输啦(??)()title,response。text)〔0〕videoinfore。findall(window。pageInfowindow。videoInfo(。?);,response。text)〔0〕print(videoinfo)字符串转成字典怎么转最稳妥查看数据类型直接用type()这个函数去查看jsondatajson。loads(videoinfo)pprint。pprint(jsondata)字典取值根据冒号左边的内容(键)提取冒号右边的内容(值)m3u8urljson。loads(jsondata〔currentVideoInfo〕〔ksPlayJson〕)〔adaptationSet〕〔0〕〔representation〕〔0〕〔backupUrl〕〔0〕print(title)print(m3u8url)通过requests模块里面get请求方式,对于m3u8url地址发送请求,并且携带上headers请求头伪装,获取响应体文本数据,用m3u8data自定义变量接收数据m3u8datarequests。get(urlm3u8url,headersheaders)。textsplit()字符串分割m3u8datare。sub(E。,,m3u8data)。split()print(m3u8data)fortsinm3u8data:tsurlhttps:alisafetyvideo。acfun。cnmediacloudacfunacfunvideotstscontentrequests。get(urltsurl,headersheaders)。contentab是什么意思a追加保存,b二进制数据ab以二进制数据追加保存withopen(videotitle。mp4,modeab)asf:f。write(tscontent)print(视频保存完成:,title)视频教程 https:www。bilibili。comvideoBV1944y137YV?sharesourcecopyweb尾语 好了,我的这篇文章写到这里就结束啦! 有更多建议或问题可以评论区或私信我哦!一起加油努力叭() 喜欢就关注一下博主,或点赞收藏评论一下我的文章叭!!!