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中使用模块的教程
Apr 27 Python
python merge、concat合并数据集的实例讲解
Apr 12 Python
对Python中的@classmethod用法详解
Apr 21 Python
Python使用matplotlib实现基础绘图功能示例
Jul 03 Python
python3实现名片管理系统
Nov 29 Python
ubuntu 18.04 安装opencv3.4.5的教程(图解)
Nov 04 Python
Python Sympy计算梯度、散度和旋度的实例
Dec 06 Python
python两个_多个字典合并相加的实例代码
Dec 26 Python
Python Sphinx使用实例及问题解决
Jan 17 Python
python误差棒图errorbar()函数实例解析
Feb 11 Python
解决pytorch 保存模型遇到的问题
Mar 03 Python
PySwarms(Python粒子群优化工具包)的使用:GlobalBestPSO例子解析
Apr 05 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
防止MySQL注入或HTML表单滥用的PHP程序
2009/01/21 PHP
PHP的加密方式及原理
2012/06/14 PHP
php短网址和数字之间相互转换的方法
2015/03/13 PHP
破除网页鼠标右键被禁用的绝招大全
2006/12/27 Javascript
JS 实现列表与多选框选择附预览动画
2014/10/29 Javascript
jQuery中parents()方法用法实例
2015/01/07 Javascript
微信公众号-获取用户信息(网页授权获取)实现步骤
2016/10/21 Javascript
JS取数字小数点后两位或n位的简单方法
2016/10/24 Javascript
详解webpack进阶之loader篇
2017/08/23 Javascript
动态创建Angular组件实现popup弹窗功能
2017/09/15 Javascript
原生JavaScript实现remove()和recover()功能示例
2018/07/24 Javascript
优雅的使用javascript递归画一棵结构树示例代码
2019/09/22 Javascript
微信小程序利用云函数获取手机号码
2019/12/17 Javascript
vue3.0实现插件封装
2020/12/14 Vue.js
python目录操作之python遍历文件夹后将结果存储为xml
2014/01/27 Python
python爬虫的数据库连接问题【推荐】
2018/06/25 Python
Django ManyToManyField 跨越中间表查询的方法
2018/12/18 Python
浅谈Python爬虫基本套路
2019/03/25 Python
numpy 声明空数组详解
2019/12/05 Python
TensorFlow设置日志级别的几种方式小结
2020/02/04 Python
Python selenium抓取虎牙短视频代码实例
2020/03/02 Python
如何在Python 游戏中模拟引力
2020/03/27 Python
python如何将图片转换素描画
2020/09/08 Python
css3圆角边框和边框阴影示例
2014/05/05 HTML / CSS
美国婚戒购物网站:Anjays Designs
2017/06/28 全球购物
YSL圣罗兰美妆官方旗舰店:购买YSL口红
2018/04/16 全球购物
英国领先的新鲜松露和最好的松露产品供应商:TruffleHunter
2019/08/26 全球购物
化工专业大学生职业生涯规划书
2014/01/14 职场文书
《有趣的发现》教学反思
2014/04/15 职场文书
销售行政专员岗位职责
2014/06/10 职场文书
小学生纪念九一八事变演讲稿
2014/09/14 职场文书
故意杀人案辩护词
2015/05/21 职场文书
借条格式范本
2015/05/25 职场文书
食品安全主题班会
2015/08/13 职场文书
js中Object.create实例用法详解
2021/10/05 Javascript
VUE使用draggable实现组件拖拽
2022/04/06 Vue.js