文章目录

  • 一、写在前面
  • 二、爬虫原理
  • 三、案例实现
  • 四、视频讲解

一、写在前面

兄弟们,自从上次爬虫热门后,我就没发高质量爬虫了,看的人都少了,唉~

原来你们都是这样的人

二、爬虫原理

  • 作用: 批量获取互联网数据(文本, 图片, 音频, 视频)

  • 本质: 一次次的请求与响应

  • 请求方式 大多数为(get/post)

方法 描述
GET 请求页面,并返回页面内筒
HEAD 类似于GET请求,只不过返回的响应中没有具体的内容,用于获取报头
POST 大多数用于提交表单或上传文件,数据包含在请求体中
PUT 从客户端向服务器传送的数据取代指定文档中的内容
DELETE 请求服务器删除指定的页面
CONNECT 把服务器当做跳板,让服务器代替客户端访问其他网页
OPTIONS 允许客户端查看服务器的性能
TRACE 回显服务器收到的请求,主要用于测试或诊断
  • 请求头 Request Headers (键值对的形式) 请求的一些配置信息告诉服务器,让服务器判断这些配置信息解析

    请求头,用来说明服务器要使用的附加信息,比较重要的信息有Cookie,Referer,User-Agent等。

    • Accept: 请求报头域,用于指定客户端可接受哪些类型的信息。
    • Accept - Language: 指定客户端可接受的语言类型。
    • Accept-Encoding: 指定客户端可接受的内容编码。
    • Host:用于指定请求支援的主机IP和端口号,其内容为请求URL的原始服务器或网关的位置。从HTTP1.1版本开始,请求必须包含此内容。
    • Cookie: 也常用复数形式Cookies,这是网站为了辨别用户进行会话跟踪而存储在用户本地的数据。它的主要功能是维持当前访会话。例如,我们输入用户名和密码成功登录某个网站后,服务器会用会话保存登录状态信息,后面我们每次刷新或请求该站点的其他页面时,会发现都是登录状态,这就是Cookies的功劳。Cookies里有信息标识了我们所对应的服务器的会话,每次浏览器在请求该站点的页面时,都会在请求头加上Cookies 并将其返回给服务器,服务器通过Cookies识别出是我们自己,并且查出当前状态是登录状态,所以返回结果就是登陆之后才能看到的网页内容。
    • Referer: 此内容用来标识这个请求是从哪个页面发过来的,服务器可以拿到这一信息并做相应处理,如做来源统计、防盗链处理等。
    • User-Agent: 简称UA,它是一个特殊的字符串头,可以使服务器识别客户使用的操作系统及版本、浏览器及版本等信息。再做爬虫时加上此信息,可以伪装为浏览器:如果不加,很容易可能被识别出为爬虫。
    • Content-Type: 也叫互联网媒体类型(Internet Media Type)或者MIME类型,在HTTP协议消息头中,它用来表示具体请求中的媒体类型信息。例如,text/html 代表HTML格式,image/gif 代表GIF图片,application/json 代表JSON类型,更多对应关系可以查看此对照表:http://tool.oschina.net/commons
  • Response中包含什么内容?

    • 响应,由服务端返回给客户端,可以分为三部分:响应状态码(Response Status Code)、响应头(Response Headers)、响应体(Response Body)

    • 1、响应状态码

      响应状态码表示服务器的响应状态,如200代表服务器正常响应,404代表页面未找到,500代表服务器内部发生错误。在爬虫中,我们可以根据状态码来判断服务器响应状态,如状态码为200,则证明成功返回数据,在进行进一步的处理,否则直接忽略。

    • 2、响应头

    • 3、响应体

      最重要的当属响应体的内容了。响应的正文数据都在响应体中,比如请求网页时,它的响应体就是网页的HTML代码;请求一张图片时,它的响应体就是图片的二进制数据。我们走爬虫请求网页后,要解析的内容就是响应体, 在浏览器开发者工具中点Preview,就可以看到网页的源代码,也就是响应体的内容,它是解析的目标。

      在做爬虫时,我们主要通过响应体得到的网页的源代码、JSON数据等,然后从中做相应内容的提取。

      用http请求库向服务器发送一个请求,然后得到这个response,把这个响应体里的内容拿下来,然后解析就可以拿到我们的数据了。

三、案例实现

  1. 找到目标网址
  2. 发送网络请求
  3. 获取数据
  4. 筛选数据
  5. 保存数据
import requests
import pprint# 统一替换
# 1.选中要替换的内容
# 2.按住Ctrl+R 注: 点亮星号* / 2021版本一下 点亮Regex
# 3.在第一个框里面输入(.*?): (.*)
# 4.在第二个框里面输入'$1': '$2',
# 5.点击REPLACE ALL
headers = {'cookie': '','referer': 'https://weibo.com/tv/channel/4379160563414111/editor','user-agent': '',
}
data = {'data': '{"Component_Channel_Editor":{"cid":"4379160563414111","count":9}}'
}
url = 'https://www.weibo.com/tv/api/component?page=/tv/channel/4379160563414111/editor'
json_data = requests.post(url=url, headers=headers, data=data).json()
ccs_list = json_data['data']['Component_Channel_Editor']['list']
next_cursor = json_data['data']['Component_Channel_Editor']['next_cursor']
for ccs in ccs_list:oid = ccs['oid']title = ccs['title']data_1 = {'data': '{"Component_Play_Playinfo":{"oid":"' + oid + '"}}'}# 1. 找到目标网址url_1 = 'https://weibo.com/tv/api/component?page=/tv/show/' + oid# 2. 发送网络请求# 2.1 构造请求头# 2.2 构造请求参数# 3. 获取数据json_data_2 = requests.post(url=url_1, headers=headers, data=data_1).json()# 4. 筛选数据dict_urls = json_data_2['data']['Component_Play_Playinfo']['urls']video_url = "https:" + dict_urls[list(dict_urls.keys())[0]]print(title + "\t" + video_url)# 5. 保存数据video_data = requests.get(video_url).contentwith open(f'video\\{title}.mp4', mode='wb') as f:f.write(video_data)print(title, "爬取成功................")

四、视频讲解

Python爬虫:批量爬取某知名网站高质量视频

兄弟们 给你们送个女朋友,冲鸭~

Python爬虫:二十行代码获取某知名网站高质量视频,带视频讲解相关推荐

  1. 【彼岸美图】二十行代码下载上千张高清美图壁纸【python爬虫】

    小白也能看懂的python爬虫,从零开始爬彼岸图网壁纸美图 你是否有过以下烦恼: 想找壁纸却找不到 找到的壁纸清晰度都不高? 下载图片太麻烦? 现在,你将可以用简简单单二十行代码解决这一切烦恼,还不赶 ...

  2. Python二十行代码实现hexo的md文件格式解析

    最近用django+Vue实现了一个博客应用,原来的hexo的博客用着也挺好,想继续留着用,于是就想将hexo生成的.md的博客内容文件解析后直接写到django的博客数据库里做同步显示. hexo生 ...

  3. 『矩阵论笔记』线性判别分析(LDA)最全解读+python实战二分类代码+补充:矩阵求导可以参考

    线性判别分析(LDA)最全解读+python实战二分类代码! 文章目录 一.主要思想! 二.具体处理流程! 三.补充二中的公式的证明! 四.目标函数的求解过程! 4.1.优化问题的转化 4.2.拉格朗 ...

  4. python多线程爬取多个网址_【Python爬虫】多线程爬取斗图网站(皮皮虾,我们上车)...

    原标题:[Python爬虫]多线程爬取斗图网站(皮皮虾,我们上车) 斗图我不怕 没有斗图库的程序猿是无助,每次在群里斗图都以惨败而告终,为了能让自己在斗图界立于不败之地,特意去网上爬取了斗图包.在这里 ...

  5. Python爬虫新手入门教学(十六):爬取好看视频小视频

    前言 本文的文字及图片来源于网络,仅供学习.交流使用,不具有任何商业用途,如有问题请及时联系我们以作处理. Python爬虫.数据分析.网站开发等案例教程视频免费在线观看 https://space. ...

  6. Python爬虫实战系列(一)-request爬取网站资源

    Python爬虫实战系列(一)-request爬取网站资源 python爬虫实战系列第一期 文章目录 Python爬虫实战系列(一)-request爬取网站资源 前言 一.request库是什么? 二 ...

  7. python爬虫实践(1)爬取图片网站的高清壁纸

    python爬虫实践(1)爬取图片网站的高清壁纸 robots.txt协议: 爬取网站之前首先检查该站点根目录下是否存在robots.txt,如果存在,就会按照该文件中的内容来确定访问的范围:如果该文 ...

  8. 小姐姐教你用爬虫抓取B站人类高质量男性求偶视频的弹幕,康康都在讨论什么!❤️

    爬取数据目标 网站:bilibili 效果展示 工具使用 开发工具:pycharm 开发环境:python3.7, Windows10 使用工具包:requests,threading, csv 重点 ...

  9. python爬虫--根据身份证号码获取户籍地、出生年月等信息

    一.背景 工作中偶尔会遇到这样的情况,给你一堆客户身份证号码,然后要你把对应的性别.生日.户籍地等信息弄出来. 最常用的方法就是用excel表套公式,这个方式如果用来取性别.生日这些信息的话问题不大, ...

最新文章

  1. python编程实战(二):一文教你生成随机验证码!大小写字母与数字组合,位数可以控制
  2. iis 6.0上部署.net 2.0和4.0网站
  3. f1 score 代码_腾讯广告算法大赛冠军代码解读:稠密特征工程
  4. 系统固件升级_固件和操作系统之间的差异
  5. 2019阿里云910会员节大促主会场全攻略
  6. Android leak内存,GitHub - jin870132/memoryleakdemo: 安卓内存泄露几种常见形式及解决方案...
  7. centos7安装postman
  8. 6.2. ExtUtils::MakeMaker
  9. logisim基础(非常基础)----寄存器元件的使用
  10. 禁用计算机f1-f12,win10系统禁用f1-f12快捷键的操作方法
  11. Min Difference
  12. 经典的图像分割方法总结
  13. 阿里云盘小白羊版!你值得拥有的一款第三方阿里云盘客户端
  14. 雷达感应模组技术,存在感应雷达传感器,智能电视开关机应用
  15. PHPSTUDY端口被占用解决方法
  16. 外汇交易提醒:美元三连阴创逾一周新低,欧洲央行或准备更大幅度加息
  17. ENSP华为路由器FTP服务器实验
  18. 关于 Linux中系统调优的一些笔记
  19. IPV6大型网络配置实战
  20. Android App修改字体大小,且不随系统字体大小更改

热门文章

  1. 小马哥----另类高仿红米 单 双卡机型详细拆机外观图与开机界面图 所谓的4G版机型,切勿与高仿红米互刷
  2. jvm源码分析之interrupt()
  3. LeetCode刷题总结文档
  4. ios调用系统相册显示英文,修改成中文
  5. pythonui自动化如何设计用例_PyTest管理UI自动化测试用例(一)
  6. 微信小程序布局技巧(三)
  7. 关于处于托管模式时无法删除mcafee agent
  8. UVA512 追踪电子表格中的单元格 Spreadsheet Tracking
  9. 领域驱动设计在前端中的应用
  10. Autowired如何实现自动注入?