前言

嗨喽!大家好,这里是魔王~

一般国外的电影电视剧,咋都找不到资源,很多人就对此束手无策了

这个时候python就很有用了,只要叫得出名字的,都可以几行代码搞定~

[本次内容]:

Python爬取美剧网站电影视频内容, 25-30K 爬虫工程师面试试题内容

[开发环境]:

  • Python 3.8
  • Pycharm

[模块使用]:

  • requests >>> pip install requests
  • re

win + R 输入cmd 输入安装命令 pip install 模块名 如果出现爆红 可能是因为 网络连接超时 切换国内镜像源
相对应的安装包/安装教程/激活码/使用教程/学习资料/工具插件 可以找我领取

首先我们先来看思路, 爬虫思路:

一. 数据来源分析

分析我们想要的数据内容 是来自于哪里
通过开发者工具进行抓包分析, 去找数据来源

二. 代码实现过程

发送请求 >>> 获取数据 >>> 解析数据 >>> 保存数据
1. 发送请求,  对于 url地址发送请求
2. 获取数据, 获取服务器返回的响应数据 (网页源代码)
3. 解析数据, 提取我们想要的数据内容 视频播放地址4. 发送请求, 对于这个播放地址发送请求
5. 获取数据, 获取服务器返回的数据 (ts文件内容)
6. 解析数据, 提取所有ts文件
7. 保存数据

requests简单的使用 get请求方法 headers请求头

for循环遍历 字符串拼接 列表取值 字符串格式化 f’{}’

正则表达式的简单使用 findall sub 替换

文件操作 open 保存

导入模块

import requests  # 数据请求模块 pip install requests
import re  # 正则表达式模块 内置模块
# url = 'https://www.meiju11.com/Play/7816-0-0.html'
# headers = {#     'Referer': 'https://www.meiju11.com/Play/7816-0-0.html',
#     'user-agent': 'Mozilla/5.0 (Windows NT 10.0; Win64; x64) AppleWebKit/537.36 (KHTML, like Gecko) Chrome/96.0.4664.110 Safari/537.36'
# }
# response = requests.get(url=url, headers=headers)
# response.encoding = response.apparent_encoding # 自动识别编码转码
# # print(response.text)
# # 每个网站数据结构都不一样, 都是需要重新去数据结构 (你要爬取网站, 通用爬虫 比如说 百度搜索引擎)
# title = re.findall("var playn = '(.*?)',", response.text)[0]
# video_data = re.findall('第\d+集\$(.*?)\$rrm3u8', response.text)
# print(title)
# print(video_data)
# num = 1
# for index in video_data:
#     video_name = f'{title}第{num}集'
#     print(video_name, index)

1. 发送请求, 对于 url地址发送请求

#     # 确定请求的网址
#     video_url = f'https://www.meiju11.com/ckplayerx/m3u8.php?url={index}&f=ck_m3u8'
#     # headers 请求头 用来伪装python代码的 不被识别出来是爬虫程序
#     # User-Agent 用户代理 浏览器基本身份标识 建议都加
#     # Referer 防盗链  告诉服务器我们的发送请求url地址 是从哪里跳转过来
#     # 加headers就穿个衣服 , 不加裸奔.... 有时候只是加一个UA 相当于你只有裤头
#     # Cookie 用户信息, 检测是否有登陆账号
#     # Host 域名
#     headers_1 = {#         'Referer': 'https://www.meiju11.com/js/player/rrm3u8.html',
#         'User-Agent': 'Mozilla/5.0 (Windows NT 10.0; Win64; x64) AppleWebKit/537.36 (KHTML, like Gecko) Chrome/96.0.4664.110 Safari/537.36'
#     }
#     # 通过requests这个模块里面get请求方法 对于url地址发送请求, 并且携带上headers请求头 最后用response变量接收返回数据
#     response = requests.get(url=video_url, headers=headers_1)
#     #  <Response [200]>  响应对象  200 状态码表示请求成功
#     # 虽然请求成功, 但是没有得到自己想要的数据内容.....
#     # print(response.text) 文本数据

3. 解析数据, 提取我们想要的数据内容 视频播放地址

#     m3u8_url = re.findall("url: '(.*?)'", response.text)[0]
#     print(m3u8_url)

4. 发送请求, 对于这个播放地址发送请求

#     m3u8_data_1 = requests.get(url=m3u8_url, headers=headers_1).text
#     # . 是匹配任意字符(除了换行\n)  * 匹配前一个字符0或者无限个
#     m3u8_data = re.sub('#EX.*', '', m3u8_data_1).split()
#     for link in m3u8_data:
#         # https://fangao.stboda.com/concat/20211115/54b420f81ccc4339b56b11b74adc15a7/cloudv-transfer/a0941a88a1784001b46560ea05257010_0000031.ts
#         # a0941a88a1784001b46560ea05257010_0000000.ts

6. 解析数据, 提取所有ts文件

#         ts_url = 'https://fangao.stboda.com/concat/20211115/54b420f81ccc4339b56b11b74adc15a7/cloudv-transfer/' + link

7. 保存数据 (二进制数据[图片/音频/视频/特定格式的文件]) 进行发送请求 获取数据

#         # ts_content = requests.get(url=ts_url).content # response.content 获取二进制数据
#         # # a 追加保存 b 二进制模块
#         # with open(video_name + '.mp4', mode='ab') as f:
#         #     f.write(ts_content)
#         print(ts_url)
#     num += 1

某站自动发弹幕代码

#
import random
import time
while True:lis = ['主播666', '主播真帅', '666']word = random.choice(lis)url = 'https://api.live.bilibili.com/msg/send'data = {'bubble': '0','msg': word,'color': '16777215','mode': '1','fontsize': '25','rnd': '1640181316','roomid': '22819508','csrf': '131d24bf2b92a3609208ed83758ab8f2','csrf_token': '131d24bf2b92a3609208ed83758ab8f2',}headers = {'cookie': '_uuid=CF79473B-0F83-6087-BCB0-23A7E36C479296281infoc; buvid3=8AEBDC64-0CEE-4F6F-9866-B1508FAB2871148805infoc; blackside_state=1; rpdid=|(kmJY|kmu|)0J\'uYJRYkJu|Y; CURRENT_QUALITY=32; buvid_fp=8AEBDC64-0CEE-4F6F-9866-B1508FAB2871148805infoc; video_page_version=v_old_home; sid=abkn3and; i-wanna-go-back=-1; b_ut=5; bp_video_offset_65901796=602085772740229500; LIVE_BUVID=AUTO5916400017585242; CURRENT_BLACKGAP=1; CURRENT_FNVAL=2000; b_lsid=FB21108D7_17DE26BCC89; fingerprint=3c7949ca118951ae1be0b5b37b321306; buvid_fp_plain=556F173C-C5B7-4583-86F9-FD1074EB421D143076infoc; DedeUserID=523606542; DedeUserID__ckMd5=909861ec223d26d8; SESSDATA=cec4dda4%2C1655733287%2Cc5b88*c1; bili_jct=131d24bf2b92a3609208ed83758ab8f2; innersign=0; _dfcaptcha=fbb016616944e9b94331aeb2627c9d3d; PVID=3','origin': 'https://live.bilibili.com','referer': 'https://live.bilibili.com/','user-agent': 'Mozilla/5.0 (Windows NT 10.0; Win64; x64) AppleWebKit/537.36 (KHTML, like Gecko) Chrome/96.0.4664.110 Safari/537.36',}response = requests.post(url=url, data=data, headers=headers)print(response.text)time.sleep(5)

好了,我的这篇文章写到这里就结束啦!

有更多建议或问题可以评论区或私信我哦!一起加油努力叭(ง •_•)ง

喜欢就关注一下博主,或点赞收藏评论一下我的文章叭!!!

学生问我25-30K得面试题能不能帮忙,这我不得上,爬取某网站电影视频内容相关推荐

  1. 【10月最新】必问的25道mybatis面试题,都会的话你也可以去大厂

    目录 1.#{}和${}的区别是什么? 2.Xml映射文件中,除了常见的select|insert|updae|delete标签之外,还有哪些标签? 3.最佳实践中,通常一个Xml映射文件,都会写一个 ...

  2. 谷歌插件webscraper使用问疑难杂症(插件页面跑到右边+爬取内容乱序+自定义选择多个列表+滚动抓取社交发帖+select鼠标无法选中元素+无法识别表格+插件支持范围+爬取数据与原始顺序不一致+)

    博客目录 谷歌插件webscraper使用问疑难杂症解决 1.插件打开后跑到了右边 2.爬取内容乱序 3.mac的支持这个插件吗 4.除了谷歌外,火狐.IE.360等浏览器支持吗 5.自定义选择多个列 ...

  3. 9.25 360校招面试题总结? 自己面试 c++后端开发,服务器方向,探索部门。

    2018.9.25 360校招面试题总结?   自己面试  c++后端开发,服务器方向,探索部门. 1上来问智力题       5L和6L的杯子量出3L的水,如何量? 一.下面开始问c++的基础的东西 ...

  4. 10分钟就能写出来的——25~30K的国外企业招聘面试考题,这不是轻轻松松吗~

    说来你可能不信 (https://jq.qq.com/?_wv=1027&k=4lDV25FG) 今天的这个案例,是一位同学的面试题, 人在国外,月薪25~30K 本来以为是难度很大的反爬.逆 ...

  5. 资源 | 25个机器学习面试题,期待你来解答

    资源 | 25个机器学习面试题,期待你来解答 https://www.cnblogs.com/DicksonJYL/p/9596057.html 选自Medium 机器之心编译 参与:Geek AI. ...

  6. python面试题_面试时全对这25道python面试题,成就了我月薪25K!附教程分享)

    之前面试的时候,面试官拿出一些python面试题对我说,只要全部正确直接给我20K,我一看题目笑了,居然全部都会,今天拿出来给大家分享一下~ 面试时全对这25道python面试题,成就了我月薪20K! ...

  7. 大数据开发(牛客)面试被问频率最高的几道面试题

    Hadoop 一.HDFS文件写入和读取过程 可灵活回答: 1)HDFS读写原理(流程) 2)HDFS上传下载流程 3)讲讲(介绍下)HDFS 4)HDFS存储机制 问过的一些公司: 阿里×3,阿里社 ...

  8. linux进程命令面试,面试常问的 25+ 个 Linux 命令

    面试常问的 25+ 个 Linux 命令 作者: HollisChuang 链接: http://www.hollischuang.com/archives/800 作为一个 Java 开发人员, 有 ...

  9. 7-3 打印学生选课清单 (25分)

    7-3 打印学生选课清单 (25分) 假设全校有最多40000名学生和最多2500门课程.现给出每门课的选课学生名单,要求输出每个前来查询的学生的选课清单.输入格式: 输入的第一行是两个正整数:N(≤ ...

最新文章

  1. ffmpeg api的应用——提取视频图片
  2. 程序员看过这篇文章 让你学会阅读源码!
  3. java.lang.SecurityException Permission Denial opening provider ngyb.createdatabase.AccountProvider
  4. 四轴飞行器实践教程第1章什么是飞行器
  5. python与excel结合-Python与Excel之间的交互
  6. 人脸识别技术新突破,网友:匪徒带着面罩呢?
  7. UA MATH563 概率论的数学基础 中心极限定理21 Skorohod定理的证明
  8. 公钥和私钥怎么生成_科普 | Eth2 验证者如何生成和保护取款密钥
  9. TCP/IP详解学习笔记(8)-DNS域名系统
  10. python当中的生成器
  11. 抢红包概率是随机的吗_顺丰发5亿红包给员工:管理学的随机奖励还能这么玩...
  12. 天禾云盘【Fly.Box】2.4.0发布,含Android、IOS客户端
  13. URL重定向,rewrite命令
  14. SQL数据库注入防范 ASP.NET Globle警告
  15. C# 操作word之在表格中插入新行、删除指定行
  16. FastReport 打印二维码多一位
  17. 2010年翡翠岛露营
  18. MSSQL 2000安装 图解
  19. 慕课软件质量保证与测试(第九章.程序中隐藏错误数量估计)
  20. 迁移学习-域适应损失函数MMD-代码实现及验证

热门文章

  1. LEETCODE838java
  2. vmware下虚拟机centos,root登录时候提示鉴定故障解决方法
  3. 二极管在LDO电路中的几种常见用法
  4. 微信公众平台系列 一
  5. 三级分销如何做分销推广 如何设置分销比例
  6. 计算机系统集成及运维,信息系统集成资质取消!ITSS或将取代其招投标地位!...
  7. 剑与家园服务器维护,剑与家园合服爆料 合服规则介绍
  8. CK-GW06-E01网关与欧姆龙PLC配置指南
  9. docker安装mysql遇到的问题
  10. Xilinx FPGA资源