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实现多线程采集的2个代码例子
Jul 07 Python
详解Python多线程
Nov 14 Python
用python的requests第三方模块抓取王者荣耀所有英雄的皮肤实例
Dec 14 Python
python距离测量的方法
Mar 06 Python
Python操作MySQL数据库的方法
Jun 20 Python
Python3.5 + sklearn利用SVM自动识别字母验证码方法示例
May 10 Python
使用python3调用wxpy模块监控linux日志并定时发送消息给群组或好友
Jun 05 Python
python读取.mat文件的数据及实例代码
Jul 12 Python
python matplotlib画盒图、子图解决坐标轴标签重叠的问题
Jan 19 Python
python关于倒排列的知识点总结
Oct 13 Python
python 如何用map()函数创建多线程任务
Apr 07 Python
python tqdm用法及实例详解
Jun 16 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
thinkphp ajaxfileupload实现异步上传图片的示例
2017/08/28 PHP
在php的yii2框架中整合hbase库的方法
2018/09/20 PHP
laravel 实现用户登录注销并限制功能
2019/10/24 PHP
jQuery 可以拖动的div实现代码 脚本之家修正版
2009/06/26 Javascript
浅析Prototype的模板类 Template
2011/12/07 Javascript
密码框显示提示文字jquery示例
2013/08/29 Javascript
使用简洁的jQuery方法实现隔行换色功能
2014/01/02 Javascript
javascript常见数据验证插件大全
2015/08/03 Javascript
JS使用JSON作为参数实例分析
2016/06/23 Javascript
JQuery遍历元素的后代和同胞实现方法
2016/09/18 Javascript
获取当前月(季度/年)的最后一天(set相关操作及应用)
2016/12/27 Javascript
微信小程序wx.previewImage预览图片实例详解
2017/12/07 Javascript
浅谈js获取ModelAndView值的问题
2018/03/28 Javascript
纯JS实现可用于页码更换的飞页特效示例
2018/05/21 Javascript
JS中作用域以及变量范围分析
2020/07/18 Javascript
js实现弹幕飞机效果
2020/08/27 Javascript
antd配置config-overrides.js文件的操作
2020/10/31 Javascript
[06:35]2014DOTA2国际邀请赛 老男孩梦圆西雅图中国军团世界最强
2014/07/22 DOTA
python实现socket客户端和服务端简单示例
2014/02/24 Python
python实现在每个独立进程中运行一个函数的方法
2015/04/23 Python
python实现简单ftp客户端的方法
2015/06/28 Python
详解多线程Django程序耗尽数据库连接的问题
2018/10/08 Python
CSS3绘制六边形的简单实现
2016/08/25 HTML / CSS
HTML5手机端弹出遮罩菜单特效代码
2016/01/27 HTML / CSS
英国最大的奢侈珠宝和手表网站:C W Sellors
2017/02/10 全球购物
新西兰领先的鞋类和靴子网上商城:Merchant 1948
2017/09/08 全球购物
澳大利亚波西米亚风连衣裙在线商店:Fortunate One
2019/04/01 全球购物
意大利折扣和优惠券网站:Groupalia
2019/10/09 全球购物
blueseventy官网:铁人三项和比赛泳衣
2021/02/06 全球购物
城市轨道专业个人求职信范文
2013/09/23 职场文书
前台接待的工作职责
2013/11/21 职场文书
社区网格化管理实施方案
2014/03/21 职场文书
《月球之谜》教学反思
2014/04/10 职场文书
信息工作经验交流材料
2014/05/28 职场文书
医德考评自我评价
2014/09/14 职场文书
Python 一键获取电脑浏览器的账号密码
2022/05/11 Python