微博视频爬虫

news/2024/10/19 4:21:19/

说在前面的一点话~
我本职工作是做爬虫开发的,最近开始爬视频网站了。
大大小小也爬了好多网站,也破解了好多网站,常规的视频网站基本上都爬了,还有一些短视频app也…
看我有心情写几篇博客吧,哈哈哈
有一个专刊,当然专栏里博客数量也不多,就专门放我爬的视频网站吧

一、思路:

以微博视频VLOG为例,我爬的是热门推荐这部分(url就不贴了)
第一步:先看网页源代码中有有.mp4或其他视频格式结尾的链接(大多数情况是没有的)
第二步:抓包,查看XHR类型的请求返回的数据
第三步:加密破解

二、实战

我用的scrapy框架,就贴个spider文件就行了
item中的download_url就是视频真实地址,下载即可,下载方法可以看我上一篇西瓜视频中的下载方式

spider文件

import scrapy
import time
import json
import re
import requests
from urllib.parse import unquote
import datetime
from ..items import VideoUrlSpiderItemclass WeiboSpider(scrapy.Spider):name = 'weibo'def start_requests(self):"""重写start_requests方法,构造start_urls"""# 接口urlbase_url = 'https://weibo.com/video/aj/load?ajwvr=6&page={}&type=channel&hot_recommend_containerid=video_tag_10&__rnd={}'		url = base_url.format(i+1, int(time.time()))# print(url)meta = {'tag': self.name}# 这里的请求应该在下载器中间件中设置headers,这个我后面再贴个代码(因为微博视频api请求头中没有cookie是获取不到数据的)yield scrapy.Request(url, callback=self.parse, meta=meta, dont_filter=True)def parse(self, response):"""解析url,获得相关数据"""list_page_json = json.loads(response.text)html = unquote(list_page_json['data'])video_url = re.findall(r'video&480=(.*?)"', html, re.S)title = re.findall(r'&title=(.*?)&', html, re.S)author = re.findall(r'" class="V_txt2">(.*?)</a>', html, re.S)for i in range(len(video_url)):item = VideoUrlSpiderItem()item['title'] = title[i]item['video_url'] = video_url[i]item['play_nums'] = player_numsitem['author'] = author[i]# print(item)yield scrapy.Request(url, callback=self.parse_download_url, meta={'item': item}, dont_filter=True)def parse_download_url(self, response):"""解析下载url"""item = response.meta['item']return item

middlewares文件

class UserAgentDownloadMiddleware(object):# user-agent 设置随机的请求头中间键USER_AGENTS = ['Mozilla/5.0 (iPhone; CPU iPhone OS 11_0 like Mac OS X) AppleWebKit/604.1.38 (KHTML, like Gecko) Version/11.0 Mobile/15A372 Safari/604.1','Mozilla/5.0 (Windows NT 6.1; WOW64; rv:40.0) Gecko/20100101 Firefox/40.1','Mozilla/5.0 (Windows NT 6.1; WOW64; Trident/7.0; AS; rv:11.0) like Gecko',]def process_request(self, request, spider):# random.choice()在列表中随机选择一个user_agent = random.choice(self.USER_AGENTS)request.headers['user-agent'] = user_agenttag = request.meta.get('tag')if tag == 'weibo':request.headers['cookie'] = 'XXXXXXX这里你从浏览器中复制COOkie就行'

http://www.ppmy.cn/news/702468.html

相关文章

【郝生活】如何下载微博视频(PC)

如何简单快速地下载微博视频&#xff08;PC端&#xff09;&#xff1f; 随着2018迷之入坑土创粉上某沙雕女团&#xff0c;本人装回了被打入冷宫N年的微博关注小姐姐们的动态 因为经常在手机上沉迷各种微博故事鬼畜短视频 啊啊啊小草好可爱&#xff01;啊啊啊啊宁鹅唱歌真好听…

微博视频php解析,微博视频的地址解析下载

微博视频播放页地址有如下几类&#xff1a; 对于第1类播放页地址&#xff0c;在网页源码中找flashvars&#xff0c;得到&#xff1a; flashvars\"filehttp%3A%2F%2Fus.sinaimg.cn%2F001uS3Ssjx06SrkpkMWP0104010000200k01.m3u8%3FKID%3Dunistore%2Cvideo%26Expires%3D1478…

一招解决微博视频不能下载的问题

首先复制所需要的下载的微博视频链接&#xff0c;在浏览器中打开&#xff08;我所用的浏览器是IE浏览器&#xff09;&#xff0c;然后按下F12打开源码&#xff0c; 步骤如下图所示&#xff1a; 1、点击Network,再点击Media 2、刷新页面&#xff0c;等待视频链接出现 3、在视…

新浪微博视频下载教程

1、谷歌浏览器打开新浪微博视频页面&#xff0c; 2、按F12键调出开发者工具&#xff0c;或者直接按快捷键 CtrlShiftI 来打开。 3、选择开发者工具中的【Network】功能选项 4、播放视频&#xff0c;会出现多条链接&#xff0c;找到Type为media的那一条&#xff0c;点鼠标右键…

下载微博(网页端)视频

右键视频&#xff0c;选择“ 复制视频地址 ”&#xff1b;通过地址跳转到对应界面&#xff1b;右键&#xff0c;依次点击“ 检查 ”、“ 网络 ”、“ 媒体 ”&#xff0c;并播放视频。 右键出现的链接&#xff0c;点击“ 在新标签页中打开 ”。

手机缓存的微博、b站视频在哪儿

微博 手机端微博下载视频的方式&#xff0c;一般&#xff0c;我们可以直接看到微博视频里面直接有下载 &#xff0c;但是到文件夹中去找的时候&#xff0c;是找不到的&#xff0c;并且并没有告知保存路径。 所以现下&#xff0c;我们需要一个浏览器&#xff0c;在此使用QQ浏览…

微博视频下载到本地

手机端下载 点开需要下载的视频&#xff0c;点击下图所示黄色框内的分享符号 点击红色框内的“复制链接” 这里我用的是谷歌浏览器&#xff0c;打开谷歌浏览器&#xff0c;粘贴复制的链接出现要下载的视频&#xff0c;长按视频出现 Download video 选项&#xff08;其他浏览…

怎样从微博下载视频?

一、常用方法&#xff1a;视频解析网站、IE缓存下载、浏览器插件下载 现在很多视频网站都使用视频遮罩的方式防止大家将网站上的图片或者视频下载到本地&#xff0c;这种防御手段只要有一点网页技术基础&#xff0c;就能绕过网站的限制。 但国内部分网站使用了更高级的防御技…