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 相关文章推荐
Python3读取zip文件信息的方法
May 22 Python
go和python变量赋值遇到的一个问题
Aug 31 Python
利用python爬取斗鱼app中照片方法实例
Dec 03 Python
python3+PyQt5使用数据库窗口视图
Apr 24 Python
Python中py文件引用另一个py文件变量的方法
Apr 29 Python
Python自定义函数计算给定日期是该年第几天的方法示例
May 30 Python
python对常见数据类型的遍历解析
Aug 27 Python
python 实现快速生成连续、随机字母列表
Nov 28 Python
用 Python 制作地球仪的方法
Apr 24 Python
Python中实现一行拆多行和多行并一行的示例代码
Sep 06 Python
python实现语音常用度量方法的代码详解
May 25 Python
python之json文件转xml文件案例讲解
Aug 07 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企业级应用之常见缓存技术篇
2011/01/27 PHP
php 去除html标记--strip_tags与htmlspecialchars的区别详解
2013/06/26 PHP
实测在class的function中include的文件中非php的global全局环境
2013/07/15 PHP
PHP SPL使用方法和他的威力
2013/11/12 PHP
PHP上传文件时文件过大$_FILES为空的解决方法
2013/11/26 PHP
PHP的PDO操作简单示例
2016/03/30 PHP
JavaScript高级程序设计 事件学习笔记
2011/09/10 Javascript
js中Math之random,round,ceil,floor的用法总结
2013/12/26 Javascript
基于JavaScript实现移动端点击图片查看大图点击大图隐藏
2015/11/04 Javascript
纯js实现手风琴效果
2020/04/17 Javascript
基于css3新属性transform及原生js实现鼠标拖动3d立方体旋转
2016/06/12 Javascript
浅谈javascript中的Function和Arguments
2016/08/30 Javascript
详解Vue.js基于$.ajax获取数据并与组件的data绑定
2017/05/26 Javascript
layui实现动态和静态分页
2018/04/28 Javascript
详解使用 Node.js 开发简单的脚手架工具
2018/06/08 Javascript
jquery实现垂直无限轮播的方法分析
2019/07/16 jQuery
使用localStorage替代cookie做本地存储
2019/09/25 Javascript
[40:57]TI4 循环赛第二日 iG vs EG
2014/07/11 DOTA
Python程序设计入门(3)数组的使用
2014/06/16 Python
django开发之settings.py中变量的全局引用详解
2017/03/29 Python
python实现旋转和水平翻转的方法
2018/10/25 Python
Django框架模板介绍
2019/01/15 Python
python pip源配置,pip配置文件存放位置的方法
2019/07/12 Python
python+django+rest框架配置创建方法
2019/08/31 Python
基于python实现操作git过程代码解析
2020/07/27 Python
KLOOK客路:发现更好玩的世界,预订独一无二的旅行体验
2016/12/16 全球购物
BIBLOO捷克:购买女装、男装、童装、鞋和配件
2017/01/27 全球购物
兰芝美国网上商城:购买LANEIGE睡眠面膜等
2017/06/30 全球购物
英国评分最高的女性剃须刀订阅盒:FFS Beauty
2018/01/25 全球购物
香港草莓网:Strawberrynet香港
2019/05/10 全球购物
亚马逊新加坡官方网站:Amazon.sg
2020/03/25 全球购物
2015年高校就业工作总结
2015/05/04 职场文书
幼儿园老师工作总结2015
2015/05/22 职场文书
初中毕业感言300字
2015/07/31 职场文书
读《教育心理学》心得体会
2016/01/22 职场文书
深入浅出讲解Java8函数式编程
2022/01/18 Java/Android