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发送邮件接收邮件示例分享
Jan 21 Python
Python入门篇之编程习惯与特点
Oct 17 Python
再谈Python中的字符串与字符编码(推荐)
Dec 14 Python
python实现SOM算法
Feb 23 Python
Python通过paramiko远程下载Linux服务器上的文件实例
Dec 27 Python
Python中的异常处理try/except/finally/raise用法分析
Feb 28 Python
如何不用安装python就能在.NET里调用Python库
Jul 12 Python
在Python中获取操作系统的进程信息
Aug 27 Python
解决安装pyqt5之后无法打开spyder的问题
Dec 13 Python
Python使用socket_TCP实现小文件下载功能
Oct 09 Python
一篇文章带你搞定Ubuntu中打开Pycharm总是卡顿崩溃
Nov 02 Python
python not运算符的实例用法
Jun 30 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
smarty的保留变量问题
2008/10/23 PHP
php 生成文字png图片的代码
2011/04/17 PHP
PHP、Java des加密解密实例
2015/04/27 PHP
PHP写的简单数字验证码实例
2017/05/23 PHP
PHP中number_format()函数的用法讲解
2019/04/08 PHP
Laravel 自带的Auth验证登录方法
2019/09/30 PHP
javascript+xml技术实现分页浏览
2008/07/27 Javascript
IE JS无提示关闭窗口不提示的方法
2010/04/29 Javascript
基于jQuery的可以控制左右滚动及自动滚动效果的代码
2010/07/25 Javascript
IE6、IE7中获取Button元素的值的bug说明
2011/08/28 Javascript
Jquery 自定义动画概述及示例
2013/03/29 Javascript
IE、FF浏览器下修改标签透明度
2014/01/28 Javascript
jQuery学习笔记之jQuery+CSS3的浏览器兼容性
2015/01/19 Javascript
Javascript通过overflow控制列表闭合与展开的方法
2015/05/15 Javascript
Bootstrap学习笔记之css样式设计(1)
2016/06/07 Javascript
详解vue2.0+axios+mock+axios-mock+adapter实现登陆
2018/07/19 Javascript
js中innerText/textContent和innerHTML与target和currentTarget的区别
2019/01/21 Javascript
JS计算斐波拉切代码实例
2019/09/12 Javascript
解决layui laydate 时间控件一闪而过的问题
2019/09/28 Javascript
Vue 请求传公共参数的操作
2020/07/31 Javascript
用于统计项目中代码总行数的Python脚本分享
2015/04/21 Python
Python logging模块用法示例
2018/08/28 Python
python可视化爬虫界面之天气查询
2019/07/03 Python
给你一面国旗 教你用python画中国国旗
2019/09/24 Python
HTML5视频播放插件 video.js介绍
2018/09/29 HTML / CSS
加州风格的游泳和沙滩装品牌:Cupshe
2019/06/10 全球购物
为您的家、后院、车库等在线购物:Spreetail
2019/06/17 全球购物
优秀员工个人的自我评价
2013/11/29 职场文书
五星级酒店餐饮部总监的标准岗位职责
2014/02/17 职场文书
化妆品活动策划方案
2014/05/23 职场文书
体育教师求职信
2014/05/24 职场文书
人民调解员培训方案
2014/06/05 职场文书
关于感恩的演讲稿400字
2014/08/26 职场文书
2015元旦晚会主持人开场白+结束语
2014/12/14 职场文书
优秀党员个人总结
2015/02/14 职场文书
《正比例》教学反思
2016/02/23 职场文书