本站消息

站长简介/公众号


站长简介:高级软件工程师,曾在阿里云,每日优鲜从事全栈开发工作,利用周末时间开发出本站,欢迎关注我的微信公众号:程序员总部,程序员的家,探索程序员的人生之路!分享IT最新技术,关注行业最新动向,让你永不落伍。了解同行们的工资,生活工作中的酸甜苦辣,谋求程序员的最终出路!

  价值13000svip视频教程,python大神匠心打造,零基础python开发工程师视频教程全套,基础+进阶+项目实战,包含课件和源码

  出租广告位,需要合作请联系站长

+关注
已关注

分类  

暂无分类

标签  

暂无标签

日期归档  

2021-02(17)

2021-03(45)

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

发布于2022-01-05 06:40     阅读(1029)     评论(0)     点赞(11)     收藏(3)



前言

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

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

这个时候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)

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

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

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

原文链接:https://blog.csdn.net/python56123/article/details/122304114







所属网站分类: 技术文章 > 博客

作者:加班是一种习惯

链接:https://www.pythonheidong.com/blog/article/1219646/39d2195607ae20e00985/

来源:python黑洞网

任何形式的转载都请注明出处,如有侵权 一经发现 必将追究其法律责任

11 0
收藏该文
已收藏

评论内容:(最多支持255个字符)