多线程爬取梨视频

from threading import Thread
import requests
import re # 访问链接
def access_page(url):
response = requests.get(url)
return response # 获取主页视频的id列表, 用来拼接视频详情页链接
def get_video_id(homepage_data):
id_list = re.findall('<a href="video_(.*?)" .*?>', homepage_data, re.S)
return id_list # 获取视频链接列表
def get_video_url(detail_page_data):
video_url = re.findall('srcUrl="(.*?)"', detail_page_data, re.S)[0]
return video_url # 获取视频名称
def get_video_name(detail_page_date):
video_name = re.findall('<h1 class="video-tt">(.*?)</h1>', detail_page_date, re.S)[0]
# 替换其中的非法字符, 不然在作为文件名保存时候会报错
remove_str = r'[\/\\\:\*\?\"\<\>\|]'
video_name = re.sub(remove_str, '_', video_name) return video_name # 保存视频
def save(video_data, name):
with open(f'{name}.mp4', 'wb') as f:
f.write(video_data)
print(f'视频[{name}]下载成功!') def run(id):
# 拼接详情页链接并访问
detail_page_url = 'https://www.pearvideo.com/video_' + id
detail_page_data = access_page(detail_page_url).text
# 获取视频名称和视频链接
video_name = get_video_name(detail_page_data)
video_url = get_video_url(detail_page_data)
# 访问视频链接获取视频数据
video_data = access_page(video_url).content
# 保存视频数据
save(video_data, video_name) if __name__ == '__main__':
homepage_data = access_page('https://www.pearvideo.com/').text
id_list = get_video_id(homepage_data) # 多线程爬取
for id in id_list:
t = Thread(target=run, args=(id,))
t.start()

Python3 多线程爬取梨视频的更多相关文章

  1. requests爬取梨视频主页所有视频

    爬取梨视频步骤: 1.爬取梨视频主页,获取主页所有的详情页链接 - url: https://www.pearvideo.com/ - 1) 往url发送请求,获取主页的html文本 - 2) 解析并 ...

  2. python爬虫实践——爬取“梨视频”

    一.爬虫的基本过程: 1.发送请求(请求库:request,selenium) 2.获取响应数据()服务器返回 3.解析并提取数据(解析库:re,BeautifulSoup,Xpath) 4.保存数据 ...

  3. 使用requests爬取梨视频、bilibili视频、汽车之家,bs4遍历文档树、搜索文档树,css选择器

    今日内容概要 使用requests爬取梨视频 requests+bs4爬取汽车之家 bs4遍历文档树 bs4搜索文档树 css选择器 内容详细 1.使用requests爬取梨视频 # 模拟发送http ...

  4. Python爬虫入门教程 50-100 Python3爬虫爬取VIP视频-Python爬虫6操作

    爬虫背景 原计划继续写一下关于手机APP的爬虫,结果发现夜神模拟器总是卡死,比较懒,不想找原因了,哈哈,所以接着写后面的博客了,从50篇开始要写几篇python爬虫的骚操作,也就是用Python3通过 ...

  5. 【Python爬虫案例学习2】python多线程爬取youtube视频

    转载:https://www.cnblogs.com/binglansky/p/8534544.html 开发环境: python2.7 + win10 开始先说一下,访问youtube需要那啥的,请 ...

  6. Python3多线程爬取meizitu的图片

    python环境:python3 运行环境:win10和linux都可以,其他系统没测 1 安装依赖 pip install requests pip install lxml pip install ...

  7. Python3从零开始爬取今日头条的新闻【一、开发环境搭建】

    Python3从零开始爬取今日头条的新闻[一.开发环境搭建] Python3从零开始爬取今日头条的新闻[二.首页热点新闻抓取] Python3从零开始爬取今日头条的新闻[三.滚动到底自动加载] Pyt ...

  8. Python3从零开始爬取今日头条的新闻【四、模拟点击切换tab标签获取内容】

    Python3从零开始爬取今日头条的新闻[一.开发环境搭建] Python3从零开始爬取今日头条的新闻[二.首页热点新闻抓取] Python3从零开始爬取今日头条的新闻[三.滚动到底自动加载] Pyt ...

  9. Python3从零开始爬取今日头条的新闻【三、滚动到底自动加载】

    Python3从零开始爬取今日头条的新闻[一.开发环境搭建] Python3从零开始爬取今日头条的新闻[二.首页热点新闻抓取] Python3从零开始爬取今日头条的新闻[三.滚动到底自动加载] Pyt ...

随机推荐

  1. 一分钟带你了解下MyBatis的动态SQL!

    MyBatis的强大特性之一便是它的动态SQL,以前拼接的时候需要注意的空格.列表最后的逗号等,现在都可以不用手动处理了,MyBatis采用功能强大的基于OGNL的表达式来实现,下面主要介绍下. 一. ...

  2. lqb 入门训练 序列求和 (PS:用长整数做数据的输入输出)

    入门训练 序列求和 时间限制:1.0s   内存限制:256.0MB     问题描述 求1+2+3+...+n的值. 输入格式 输入包括一个整数n. 输出格式 输出一行,包括一个整数,表示1+2+3 ...

  3. nyoj 24-素数距离问题 (素数算法)

    24-素数距离问题 内存限制:64MB 时间限制:3000ms Special Judge: No accepted:21 submit:71 题目描述: 现在给出你一些数,要求你写出一个程序,输出这 ...

  4. Python3.7.1学习(七)mysql中pymysql模块详解(一)

    pymysql是纯用Python操作MySQL的模块,其使用方法和MySQLdb几乎相同.此次介绍mysql以及在python中如何用pymysql操作数据库, 以及在mysql中存储过程, 触发器以 ...

  5. HTML的标签认识

    <!--      html标签     h1~h6 标题标签(只有1~6,依次减小)     p 段落标签     span 无意义的行标签     div 无意义的块标签     b 加粗 ...

  6. day 30 多线程 socketserver模块补充

    内容回顾: socket 模块 服务端:收发数据 - > accept/recv 客户端:收发数据 -> connect/recv 1. 考试题 1. 解释性和编译型 编译型: 先把代码编 ...

  7. python函数-参数

    python函数-参数 实验室 # 演示形参是可变类型 def register(name, hobby, hobby_list=[]): hobby_list.append(hobby) print ...

  8. Oracle SQL command slash

    We know that there is "commit" in oracle to submit all data in the session and used very c ...

  9. Mysql密码忘记怎么修改?

    做开发的过程中多少会用到MySQL数据库,所以忘记密码也就成为一些马虎的同学的家常便饭了,今天发布一个忘记MySQL密码如何修改的文章作为记录. 1>首先将MySQL的服务关闭,两种方法:1,打 ...

  10. IIS+PHP上传文件大小限制和上传时间限制,iis7和iis8上传文件大小限制和上传时间限制

    先说IIS这边的配置                                                                  一:点击站点“管理”下的“配置编辑器”. 二:设 ...