python爬虫 线程池创建并获取文件代码实例


Posted in Python onSeptember 28, 2019

本实例主要进行线程池创建,多线程获取、存储视频文件

梨视频:利用线程池进行视频爬取

#爬取梨视频数据
import requests
import re
from lxml import etree
from multiprocessing.dummy import Pool
import random

# 定义获取视频数据方法
def getVideoData(url): # url为列表中的视频url
  return requests.get(url=url,headers=headers).content

# 定义存储数据方法
def saveVideo(data):
  fileName = str(random.randint(0,5000))+'.mp4'
  with open(fileName,'wb') as fp:
    fp.write(data)

# 爬取数据
#实例化一个线程池对象,开启5个线程池
pool = Pool(5)

url = 'https://www.pearvideo.com/category_1'
headers = {
  'User-Agent':'Mozilla/5.0 (Windows NT 6.1; Win64; x64) AppleWebKit/537.36 (KHTML, like Gecko) Chrome/72.0.3626.119 Safari/537.36'
}
page_text = requests.get(url=url,headers=headers).text
tree = etree.HTML(page_text)
li_list = tree.xpath('//div[@id="listvideoList"]/ul/li')

video_url_list = [] # 存的是将要下载视频的url
for li in li_list:
  detail_url = 'https://www.pearvideo.com/'+li.xpath('./div/a/@href')[0]
  detail_page = requests.get(url=detail_url,headers=headers).text
  #因为视频连接不在标签汇中,而是一个js语句,所以用正则匹配
  video_url = re.findall('srcUrl="(.*?)",vdoUrl',detail_page,re.S)[0]
  video_url_list.append(video_url)
  
# map函数的应用:参数1:回调函数,参数2:列表;
#将列表中的参数赋值给回调函数的形参,让回调函数处理
video_data_list = pool.map(getVideoData,video_url_list)

pool.map(saveVideo,video_data_list)

以上就是本文的全部内容,希望对大家的学习有所帮助,也希望大家多多支持三水点靠木。

Python 相关文章推荐
Python实现豆瓣图片下载的方法
May 25 Python
python+selenium实现163邮箱自动登陆的方法
Dec 31 Python
Python编程把二叉树打印成多行代码
Jan 04 Python
python pygame实现五子棋小游戏
Oct 26 Python
Python3 venv搭建轻量级虚拟环境的步骤(图文)
Aug 09 Python
简单了解Python3 bytes和str类型的区别和联系
Dec 19 Python
详解有关PyCharm安装库失败的问题的解决方法
Feb 02 Python
使用python处理题库表格并转化为word形式的实现
Apr 14 Python
python属于软件吗
Jun 18 Python
python文件名批量重命名脚本实例代码
Apr 22 Python
pytorch加载预训练模型与自己模型不匹配的解决方案
May 13 Python
Python爬虫:从m3u8文件里提取小视频的正确操作
May 14 Python
python 单线程和异步协程工作方式解析
Sep 28 #Python
python爬虫 正则表达式解析
Sep 28 #Python
python爬虫 Pyppeteer使用方法解析
Sep 28 #Python
python安装scipy的步骤解析
Sep 28 #Python
python网络爬虫 CrawlSpider使用详解
Sep 27 #Python
python numpy存取文件的方式
Apr 01 #Python
100行Python代码实现每天不同时间段定时给女友发消息
Sep 27 #Python
You might like
PHP连接SQLServer2005 的问题解决方法
2010/07/19 PHP
php基于数组函数实现关联表的编辑操作示例
2017/07/04 PHP
Firefox 无法获取cssRules 的解决办法
2006/10/11 Javascript
JavaScript版的TwoQueues缓存模型
2014/12/29 Javascript
举例详解Python中smtplib模块处理电子邮件的使用
2015/06/24 Javascript
深入解析JavaScript中的立即执行函数
2016/05/21 Javascript
解析JavaScript中的字符串类型与字符编码支持
2016/06/24 Javascript
详解javascript表单的Ajax提交插件的使用
2016/12/29 Javascript
js 判断数据类型的几种方法
2017/01/13 Javascript
Bootstrap免费字体和图标网站(值得收藏)
2017/03/16 Javascript
JavaScript实现重力下落与弹性效果的方法分析
2017/12/20 Javascript
使用nodejs+express实现简单的文件上传功能
2017/12/27 NodeJs
VUE重点问题总结
2018/03/19 Javascript
详解Vue.js使用Swiper.js在iOS
2018/09/10 Javascript
javascript将非数值转换为数值
2018/09/13 Javascript
js实现多个标题吸顶效果
2020/01/08 Javascript
Postman无法正常返回结果问题解决
2020/08/28 Javascript
JS addEventListener()和attachEvent()方法实现注册事件
2021/01/11 Javascript
Python基于pycrypto实现的AES加密和解密算法示例
2018/04/10 Python
python验证码识别教程之利用投影法、连通域法分割图片
2018/06/04 Python
Django框架模板用法入门教程
2019/11/04 Python
详解Python中的format格式化函数的使用方法
2019/11/20 Python
Python argparse模块使用方法解析
2020/02/20 Python
浅谈matplotlib.pyplot与axes的关系
2020/03/06 Python
python中的selenium安装的步骤(浏览器自动化测试框架)
2020/03/17 Python
CSS3制作hover下划线动画
2017/03/27 HTML / CSS
法国最大电子商务平台:Cdiscount
2018/03/13 全球购物
美国购物网站:Clickhere2shop
2021/01/28 全球购物
几道Java和数据库的面试题
2013/05/30 面试题
毕业生实习鉴定
2013/12/11 职场文书
食堂个人先进事迹
2014/01/22 职场文书
yy生日主持词
2014/03/20 职场文书
大一新生学期自我评价
2014/04/09 职场文书
学生保证书范文
2014/04/28 职场文书
旅游与环境专业求职信
2014/06/05 职场文书
最感人的道歉情书
2015/05/12 职场文书