最近在写一个应用,需要收集微博上一些热门的视频,像这些小视频一般都来自秒拍,微拍,美拍和新浪视频,而且没有下载的选项,所以只能动脑想想办法了。

第一步

分析网页源码。 例如:http://video.weibo.com/show?fid=1034:0988e59a12e5178acb7f23adc3fe5e97,右键查看源码,一般视频都是mp4后缀,搜索发现没有,但是有的直接就能看到了比如美拍的视频。

第二步

抓包,分析请求和返回。这个也可以通过强大的chrome实现,还是上面的例子,右键->审查元素->NetWork,然后F5刷新网页 

发现有很多请求,只能一条一条的分析了,其实视频格式就是那几种mp4,flv,avi了,一下就能看到了,复制到浏览器中打开,果然就是我们想要的下载链接了。 

第三步

分析下载链接和视频链接的规律。即http://video.weibo.com/show?fid=1034:0988e59a12e5178acb7f23adc3fe5e97与xxx.mp4的关系。这个又需要分析网页源码了,其实可以注意上面那个以.m3u8后缀的链接,m3u8记录了一个索引纯文本文件,打开它时播放软件并不是播放它,而是根据它的索引找到对应的音视频文件的网络地址进行在线播放,打开看,里面确实记录着我们想要的下载链接。而且.m3u8后缀的链接就在网页源码中。 

总结

经过前三步的分析,获取视频下载链接的思路就是先从网页源码中获取.m3u8后缀的链接,下载该文件,从里面得到视频下载链接,最后下载视频就好了

源码

#sinavideo.py
#coding=utf-8
import os
import re
import urllib2
import urllib
from common import Common
class SinaVideo():URL_PIRFIX = "http://us.sinaimg.cn/"def getM3u8(self,html):reg = re.compile(r'list=([\s\S]*?)&fid')result = reg.findall(html)return result[0]def getName(self,url):return url.split('=')[1]def getSinavideoUrl(self,filepath):f = open(filepath,'r')lines = f.readlines()f.close()for line in lines:if line[0] !='#':return linedef download(self,url,filepath):#获取名称name = self.getName(url)html = Common.getHtml(url)m3u8 = self.getM3u8(html)Common.download(urllib.unquote(m3u8),filepath,name + '.m3u8')url = self.URL_PIRFIX + self.getSinavideoUrl(filepath+name+'.m3u8')Common.download(url,filepath,name+'.mp4')

#common.py
#coding=utf-8
import urllib2
import os
import reclass Common():#  获取网页源码
    @staticmethoddef getHtml(url):html = urllib2.urlopen(url).read()print  "[+]获取网页源码:"+urlreturn html# 下载文件
    @staticmethoddef download(url,filepath,filename):headers = {'Accept': 'text/html,application/xhtml+xml,application/xml;q=0.9,*/*;q=0.8','Accept-Charset': 'UTF-8,*;q=0.5','Accept-Encoding': 'gzip,deflate,sdch','Accept-Language': 'en-US,en;q=0.8','User-Agent': 'Mozilla/5.0 (Linux; Android 4.4.2; Nexus 4 Build/KOT49H) AppleWebKit/537.36 (KHTML, like Gecko) Chrome/34.0.1847.114 Mobile Safari/537.36'}request = urllib2.Request(url,headers = headers);response = urllib2.urlopen(request)path = filepath + filenamewith open(path,'wb') as output:while True:buffer = response.read(1024*256);if not buffer:break# received += len(buffer)
                output.write(buffer)print "[+]下载文件成功:"+path@staticmethoddef isExist(filepath):return os.path.exists(filepath)@staticmethoddef createDir(filepath):os.makedirs(filepath,0777)

调用方式:

 url = "http://video.weibo.com/show?fid=1034:0988e59a12e5178acb7f23adc3fe5e97"
sinavideo = SinaVideo()         sinavideo.download(url,""/Users/cheng/Documents/PyScript/res/"")

结果

转载于:https://www.cnblogs.com/hahaa/p/9674807.html

Python爬虫:爬取美拍小姐姐视频相关推荐

  1. python爬虫爬取美丽小姐姐图片美女壁纸

    前言 本文的文字及图片来源于网络,仅供学习.交流使用,不具有任何商业用途,如有问题请及时联系我们以作处理. PS:如有需要Python学习资料的小伙伴可以加点击下方链接自行获取 python免费学习资 ...

  2. python爬虫 爬取清纯小姐姐图片

    文章目录 1 思路介绍 2 完整代码 2 代码介绍 2.1 获取网站 2.3 创建目录 2.4 找到首图的名称和地址 2.5 实现同一个人的翻页 2.6 实现每一位小姐姐图片的连接 2.7 爬取图片 ...

  3. 使用python爬虫爬取秒懂百科的视频

    仅供学习交流使用,如有侵权,联系删除. python 爬虫抓取百度百科视频源代码 from urllib.parse import quote from bs4 import BeautifulSou ...

  4. Python爬虫爬取网站小漫画

    python爬取小漫画 最近在google冲浪的时候发现一个很有意思的漫画网站,可以看韩国的小漫画,但是只可以看很少的一部分,后面的需要付费观看,于是就想着怎么才能免费看到这个网站的所有漫画. 于是我 ...

  5. 爬虫爬取斗鱼小姐姐直播间的封面

    # -*- coding: utf-8 -*- """ Created on Wed Jun 23 21:58:40 2021@author: xfw "&qu ...

  6. python爬虫爬取校花网视频

    import re import requests import hashlib import time# respose=requests.get('http://www.xiaohuar.com/ ...

  7. Python爬虫 | 爬取高质量小姐姐照片

    Python爬虫 | 爬取高质量小姐姐照片 1.数据来源分析 2.获取author_id_list和img_id 3.制作detial 4.制作detial_list 5.数据保存 6.批量获取 7. ...

  8. Python爬虫:爬取知乎上的视频,并把下载链接保存到md文件中

    Python爬虫:爬取知乎上的视频,并把下载链接保存到md文件中 1.需要的Python模块 主要是requests模块,用于得到的网页的数据 安装命令为:pip install requests 2 ...

  9. python爬取“百度小姐姐”

    欢迎加入我们卧虎藏龙的python讨论qq群:996113038 最近经常推一些游戏类的推文 发现这些推文的阅读量不是很高 我算明白了 写推文不趁妹子是没人看的 想到自己好久没有发过爬虫了. 今天就给 ...

最新文章

  1. Twitter Storm常见模式
  2. Android JNI开发摘录(四)之JNI异常处理
  3. Android Studio开发基础之Service
  4. Heroku运行Java
  5. 我可以做些什么来提高应用程序的可用性?
  6. 52 -算法 -数据结构类 Leetcode26 删除有序数组中的重复项
  7. html轮播图向左改为向下,jQuery之轮播图向左滚动动画【原创】
  8. 上传multipart文件
  9. R语言学习笔记:路径设置与安装包
  10. 通用的电子商务商城后台管理界面模板——后台
  11. Windows 语音引擎TTS修复
  12. Js中var,let,const的区别
  13. 老毛桃winpe官网
  14. Unity中使用TexturePacke打包的图集
  15. Unity中的设备唯一码GAID、IDFA,用于广告跟踪和数据统计
  16. 我使用过的拼音输入法
  17. 由电源IC芯片管理的,通过电感实现DC-DC升压电路详解
  18. 独立成分分析ICA/FastICA
  19. 第一届世界区块链大会·三点钟峰会(W.B.C)在澳门开幕 万人峰会大咖云集明星嘉年华
  20. C# 中获取时间戳的方法

热门文章

  1. python 网页樱花动态图_用 Python 绘制美丽的樱花
  2. 青龙面板——抖抖健身 脚本+超详细教程
  3. 模拟数字电路->运算放大器
  4. 兰州大学计算机学院硕士调剂,北大学生要调剂去兰州大学,这届考研调剂简直是“神仙打架”...
  5. 服务器提示系统异常是什么意思,服务器异常提醒
  6. 脱机工作弹框问题的解决办法
  7. [ZT]:自己动手提高ubuntu性能
  8. 强化学习对抗攻击总结
  9. 2019微信张小龙4小时演讲3万字实录
  10. 实习日志Day 10