抓取美拍的数据并不算是很难 关键是他的视频url的加密算法是有点难搞。

打开美拍的网址我们查看一下源代码,他的网页加载方式跟其它的网站差不多,video_url也是在源代码中,但是我们仔细看,诺就是下边这一串,是人都能猜测这应该是是他的video_url的地址,但是经过某种加密或者编码,根据我的经验我猜是base64,自己有一套算法在里面添加一些随机字符串

我把我写的代码贴下 ,有兴趣的同法可以尝试下:

items.py

class MeipaiItem(scrapy.Item):# define the fields for your item here like:# name = scrapy.Field()cut_url = scrapy.Field()create_time = scrapy.Field()video_url = scrapy.Field()title = scrapy.Field()author = scrapy.Field()

spider

# -*- coding, utf-8 -*-
import scrapy
import json
import base64
from Meipai.items import MeipaiItem
import loggingclass MeipaiSpider(scrapy.Spider):name = 'meipai'allowed_domains = ['meipai.com']start_urls = ['http://www.meipai.com/']offset = 1MeiPai = [('搞笑', '13'),('明星', '16'),('高颜值','474'),('舞蹈', '5872239354896137479'),('精选', '488'),('音乐', '5871155236525660080'),('美食', '5870490265939297486'),('时尚', '27'),('美状', '6161763227134314911'),('吃秀', '5871963671268989887'),('宝宝', '5864549574576746574'),('创意', '5875185672678760586'),('游戏', '5879621667768487138'),('体育', '5872639793429995335'),('娱乐','6204189999771523532'),]def parse(self, response):for channel,id in self.MeiPai:JsonUrl = 'http://www.meipai.com/topics/hot_timeline?page=1&count=24&tid={}'.format(id)yield scrapy.Request(url=JsonUrl,callback=self.parse_item)def system(self,string_num):return str(int(string_num.upper(), 16))def parse_item(self,response):item = MeipaiItem()OriginalHtml = json.loads(response.body.decode('utf-8'))NowHtml = OriginalHtml.get('medias')for NowData in NowHtml:# print(NowData)CutPicture = NowData.get('cover_pic')item['cut_url'] = CutPictureCreateTime = NowData.get('created_at')item['create_time'] = CreateTimeTitle = NowData.get('caption')if Title:item['title'] = Titleelse:returnUser = NowData.get('user').get('screen_name')if User:item['author'] = Userelse:returntry:EncryptionVideoUrl = NowData.get('video')Num = self.system(EncryptionVideoUrl[:4][::-1])StartNum = Num[0]StartCount = Num[1]EndNum = Num[2]EndCount = Num[3]AddendNum = -(int(EndCount) + int(EndNum))HeaderNUm = int(StartCount) + int(StartNum) + int(4)TrueMindPart = EncryptionVideoUrl[HeaderNUm:AddendNum]TrueStartUrl = EncryptionVideoUrl[4:4 + int(StartNum)]TrueEndtUrl = EncryptionVideoUrl[(-int(EndNum)):]DealWithFinalUrl = TrueStartUrl + TrueMindPart + str(TrueEndtUrl)# Mp4Url = base64.b64decode(DealWithFinalUrl)FinalMp4UrlData = (str(base64.b64decode(DealWithFinalUrl), 'utf-8'))item['video_url'] = FinalMp4UrlDataexcept Exception as e:logging.info(e)return# print(CutPicture,CreateTime,User,Title,Mp4Url)if not item['video_url']:returnyield item

piplines.py

# -*- coding: utf-8 -*-# Define your item pipelines here
#
# Don't forget to add your pipeline to the ITEM_PIPELINES setting
# See: https://doc.scrapy.org/en/latest/topics/item-pipeline.html
import json
import loggingclass MeipaiPipeline(object):def __init__(self):self.name = open('data.json','w')def process_item(self, item, spider):content = json.dumps(dict(item)) + '\n'logging.info(type(content))self.name.write(content.encode('utf-8').decode('unicode-escape'))return itemdef close_item(self,spider):self.name.close()

我们可以看下日志信息,视频的url,现在是我们常见的MP4格式哈,也是可以在浏览器打开的,可以请求的。

我们随便找一个拿到浏览器,是没有问题的:

然后我们这些数据的处理方式,我们可以保存到本地,也可以存放数据库,感兴趣的伙伴可以吧视频下载下来,我这里仅仅是以文件的格式保存到了本地:

Scrapy 框架抓取美拍视频相关推荐

  1. 使用scrapy框架抓取手机商品信息(2)

    目录 1.模块设计 2.手机页面代码编写 2.1数据获取 2.2主页面编写 3.功能编写 3.1通过人民查询 3.2清空选项和查询函数 3.3列表相关功能定义 4.最终成功展示和总结 上一篇:使用sc ...

  2. 使用scrapy框架抓取手机商品信息(1)

    目录 1.准备工作 1.1 启动pycharm 1.2 setting.py 配置 1.3爬取页面分析 2.代码编写 2.1 爬虫代码 2.2 piplines.py代码编写 3 运行及收尾 追加 1 ...

  3. Python爬虫实战之二 - 基于Scrapy框架抓取Boss直聘的招聘信息

    Python爬虫实战之三 - 基于Scrapy框架抓取Boss直聘的招聘信息 ---------------readme--------------- 简介:本人产品汪一枚,Python自学数月,对于 ...

  4. python爬虫天气实例scrapy_python爬虫之利用scrapy框架抓取新浪天气数据

    scrapy中文官方文档:点击打开链接 Scrapy是Python开发的一个快速.高层次的屏幕抓取和web抓取框架,用于抓取web站点并从页面中提取结构化的数据.Scrapy用途广泛,可以用于数据挖掘 ...

  5. python scrapy框架 抓取的图片路径打不开图片_Python使用Scrapy爬虫框架全站爬取图片并保存本地的实现代码...

    大家可以在Github上clone全部源码. 基本上按照文档的流程走一遍就基本会用了. Step1: 在开始爬取之前,必须创建一个新的Scrapy项目. 进入打算存储代码的目录中,运行下列命令: sc ...

  6. python爬虫:使用scrapy框架抓取360超清壁纸(10W+超清壁纸等你来爬)

    目的:闲着无聊,利用爬虫爬取360超清壁纸,并将其数据存储至MongoDB/MySQL中,将图片下载至指定文件夹. 要求:确保以安装MongoDB或者MySQL数据库.scrapy框架也肯定必须有的: ...

  7. python scrapy框架 抓取的图片路径打不开图片_Python中Scrapy爬虫图片处理详解

    下载图片 下载图片有两种方式,一种是通过 Requests 模块发送 get 请求下载,另一种是使用 Scrapy 的 ImagesPipeline 图片管道类,这里主要讲后者. 安装 Scrapy ...

  8. 利用python scrapy 框架抓取豆瓣小组数据

    因为最近在找房子在豆瓣小组-上海租房上找,发现搜索困难,于是想利用爬虫将数据抓取. 顺便熟悉一下Python. 这边有scrapy 入门教程出处:http://www.cnblogs.com/txw1 ...

  9. python scarpy文献_使用python scrapy框架抓取cnblog 的文章内容

    scrapy 的文档请移驾到 http://scrapy-chs.readthedocs.io/zh_CN/0.24/intro/install.html 1.准备工作 安装python .Spyde ...

最新文章

  1. Spring JdbcTemplate方法详解
  2. DockOne微信分享(一一二):Flannel中vxlan backend的原理和实现
  3. 响应格式html,设置响应格式的HTML邮件
  4. 从0-1教你利用服务器做属于自己的个人博客
  5. 微信支付退款结果通知解密 base64_decode / md5 / AES
  6. 十二、深入Python列表和元组
  7. 【项目源码分享】基于C++实现的小型数据库(Windows/Linux环境)
  8. oracle只读事物,oracle的只读事务
  9. 转载-----Java Longest Palindromic Substring(最长回文字符串)
  10. SQLi LABS Less-30
  11. xss攻击突破转义_每个人都应该了解的7种xss漏洞
  12. 深度学习自学(二十六):人脸数据集
  13. Tensorflow函数映射:py_func和map_fn
  14. [转]CString类型的头文件、CString的输出、CString的常用用法
  15. win7开机动画_win7系统怎么修改开机动画 win7系统开机动画修改方法
  16. 微机实验报告7 定时/计数器应用实验
  17. 2525 小b的字符串(模拟)
  18. 表面肌电信号处理流程——基于肌电信号分类的特征抽取的设计
  19. 菜鸟的Java基础知识学习
  20. 技嘉ide模式怎么改,电脑BIOS中怎么设置硬盘为IDE模式

热门文章

  1. 中小学教师计算机网络研修平台,全国教师网络培训平台登录入口:http://www.teacher.com.cn/...
  2. 【Music】横屏歌词显示效果不好
  3. 关于tiny4412 usb接线接到电脑USB接口无效的解决方法
  4. jQuery animate动画效果
  5. 习题1.3从五色球中取三色球的取法
  6. Python语言程序设计(一)
  7. 华为asph是什么型号_小米11上的ASPH镜头到底是个啥?来看看这个镜头到底怎么样?...
  8. 统计学的经典书籍指南zz
  9. 智工教育:监理工程师考增项可以免考公共科?
  10. (bok) 利用泰勒级数sin(x)=x-x^3/3!+x^5/5!-x^7/7!+x^9/9!-... 计算sin(x)的值。要求最后一项的绝对值小于10^(-5), 并统计出此时累计了多少项?