爬虫——使用多进程爬取视频数据

  以梨视频为例分析页面请求抓取网页数据。本次抓取梨视频生活分类页面下的部分视频数据,并保存到本地。

一、分析网页

  打开抓取网页,查看网页代码结构,发现网页结构里面存放视频的地址并不是真正的视频地址。

        

  进入视频详情页面查看后,可以在response中找到真正的视频地址。保存这个地址的并不是标签,而是一个变量,我们使用re来解析这个变量,提取信息。

        

二、代码实现

"""使用多线程爬取梨视频视频数据"""
import requests
import re
from lxml import etree
from multiprocessing.dummy import Pool

url = ‘https://www.pearvideo.com/category_5‘
page_text = requests.get(url=url).text

tree = etree.HTML(page_text)
# 1、获取页面中视频详情地址
li_list = tree.xpath(‘//ul[@id="listvideoListUl"]/li‘)
url_list = []
for i in li_list:
    # 2、构造出每个视频的详情地址
    detail_url = "https://www.pearvideo.com/" + i.xpath(‘./div/a/@href‘)[0]
    name = i.xpath(‘./div/a/div[2]/text()‘)[0] + ‘.mp4‘
    # 3、向视频详情地址发起请求
    detail_page = requests.get(url=detail_url).text
    # 4、从response中解析出视频的真实地址
    ex = ‘srcUrl="(.*?)",vdoUrl‘
    video_url = re.findall(ex, detail_page)[0]
    dic = {
        ‘name‘: name,
        ‘url‘: video_url
    }
    url_list.append(dic)

def get_video_data(d):
    """
    向视频地址发起请求,二进制写入本地文件
    :param d:
    :return:
    """
    url = d[‘url‘]
    data = requests.get(url=url).content
    print(d[‘name‘], "正在下载。。。")
    with open(d[‘name‘], ‘wb‘) as f:
        f.write(data)
        print(d[‘name‘], "下载成功。。。")

# 使用多进程处理
pool = Pool(4)
pool.map(get_video_data, url_list)
pool.close()
pool.join()

  运行结果:

与新中国同岁!70名70岁老人的故事.mp4 正在下载。。。
与新中国同岁!70名70岁老人的故事.mp4 下载成功。。。
妻子每天失忆,丈夫用视频帮找记忆.mp4 正在下载。。。
妻子每天失忆,丈夫用视频帮找记忆.mp4 下载成功。。。
中国时尚引领国际潮流.mp4 正在下载。。。
中国时尚引领国际潮流.mp4 下载成功。。。
10后女孩7岁就拿3项少儿跑酷赛大奖.mp4 正在下载。。。
10后女孩7岁就拿3项少儿跑酷赛大奖.mp4 下载成功。。。

原文地址:https://www.cnblogs.com/zivli/p/11614103.html

时间: 2024-11-05 06:12:32

爬虫——使用多进程爬取视频数据的相关文章

【爬虫问题】爬取tv.sohu.com的页面, 提取视频相关信息

尝试解决下面的问题 问题: 爬取tv.sohu.com的页面, 提取视频相关信息,不可用爬虫框架完成 何为视频i关信息?属性有哪些? 需求: 做到最大可能的页面覆盖率 *使用httpClient 模拟获取页面HtmlText源码信息,正则出源码视频URL解析类HtmlText2URLlist.ashx. 正则式:href=\"(.*?)\" 选择重要的信息进行存储 选择合适的数据存储方式,便于后续使用 数据库字段 ID.URL.IsSuccess.Title.Isdelete.Vide

Node 爬虫,批量爬取头条视频并保存

项目地址:GitHub 目标网站:西瓜视频项目功能:下载头条号[维辰财经]下的最新20个视频姊妹项目:批量下载美女图集 简介 一般批量爬取视频或者图片的套路是,使用爬虫获得文件链接集合,然后通过 writeFile 等方法逐个保存文件.然而,头条的视频,在需要爬取的 html 文件(服务端渲染输出)中,无法捕捉视频链接.视频链接是页面在客户端渲染时,通过某些 js 文件内的算法或者解密方法,根据视频的已知 key 或者 hash 值,动态计算出来并添加到 video 标签的.这也是网站的一种反爬

爬虫再探实战(五)———爬取APP数据——超级课程表【一】

关于爬虫,开始以为只能爬取网页数据,后来知道APP也能抓取.于是,在学校利用空闲时间,耗时两周实现了数据的抓取和简单的数据分析. 目标,抓取超级课程表XX大学(其实是我们大学啦...)学生20000条发帖信息.思路如下: STEP1:为我们的爬虫找到入口 APP请求数据,也是通过网络协议,这样,我们就抓包来定位入口,这里我用的是fiddler.关于设置手机和fiddler的关联,请参考这篇文章. 找到登陆入口为:http://120.55.151.61/V2/StudentSkip/loginC

使用进程池模拟多进程爬取url获取数据,使用进程绑定的回调函数去处理数据

1 # 使用requests请求网页,爬取网页的内容 2 3 # 模拟使用进程池模拟多进程爬取网页获取数据,使用进程绑定的回调函数去处理数据 4 5 import requests 6 from multiprocessing import Pool 7 8 # response = requests.get('http://www.baidu.com') # 访问网页获取网页内容,得到一个网页内容的结果对象<Response [200]>这个200是一个状态码,200表示网页正常的返回,40

python爬虫——爬取网页数据和解析数据

1.网络爬虫的基本概念 网络爬虫(又称网络蜘蛛,机器人),就是模拟客户端发送网络请求,接收请求响应,一种按照一定的规则,自动地抓取互联网信息的程序.只要浏览器能够做的事情,原则上,爬虫都能够做到. 2.网络爬虫的功能   图2 网络爬虫可以代替手工做很多事情,比如可以用于做搜索引擎,也可以爬取网站上面的图片,比如有些朋友将某些网站上的图片全部爬取下来,集中进行浏览,同时,网络爬虫也可以用于金融投资领域,比如可以自动爬取一些金融信息,并进行投资分析等. 有时,我们比较喜欢的新闻网站可能有几个,每次

爬虫(十):AJAX、爬取AJAX数据

1. AJAX 1.1 什么是AJAX AJAX即“Asynchronous JavaScript And XML”(异步JavaScript和XML)可以使网页实现异步更新,就是不重新加载整个网页的情况下,对网页的某部分进行更新(局部刷新).传统的网页(不使用AJAX)如果需要更新内容,必须重载整个网页页面. AJAX = 异步JavaScript和XML,是一种新的思想,整合之前的多种技术,用于创建快速交互式网页应用的页面开发技术. 1.2 同步和异步 同步现象:客户端发送请求到服务器端,当

Python爬取视频指南

摘自:https://www.jianshu.com/p/9ca86becd86d 前言 前两天尔羽说让我爬一下菜鸟窝的教程视频,这次就跟大家来说说Python爬取视频的经验 正文 https://www.cniao5.com/ 菜鸟窝上有很多教程视频,但是这些视频好像没有直接的下载地址,而且有些教程视频还是有期限的,那么问题就产生了我看的速度比较慢而且视频又很多,没等我看完视频就到期了怎么办?这时候写一个爬虫将这些教程视频下载下来就很好地解决了这个问题 当然,对于某些视频网站的VIP电影.视频

教你分分钟学会用python爬虫框架Scrapy爬取心目中的女神

欢迎加入Python学习交流群:535993938  禁止闲聊 ! 名额有限 ! 非喜勿进 ! 本博文将带领你从入门到精通爬虫框架Scrapy,最终具备爬取任何网页的数据的能力.本文以校花网为例进行爬取,校花网:http://www.xiaohuar.com/,让你体验爬取校花的成就感. Scrapy,Python开发的一个快速,高层次的屏幕抓取和web抓取框架,用于抓取web站点并从页面中提取结构化的数据.Scrapy用途广泛,可以用于数据挖掘.监测和自动化测试. Scrapy吸引人的地方在于

【转载】教你分分钟学会用python爬虫框架Scrapy爬取心目中的女神

原文:教你分分钟学会用python爬虫框架Scrapy爬取心目中的女神 本博文将带领你从入门到精通爬虫框架Scrapy,最终具备爬取任何网页的数据的能力.本文以校花网为例进行爬取,校花网:http://www.xiaohuar.com/,让你体验爬取校花的成就感. Scrapy,Python开发的一个快速,高层次的屏幕抓取和web抓取框架,用于抓取web站点并从页面中提取结构化的数据.Scrapy用途广泛,可以用于数据挖掘.监测和自动化测试. Scrapy吸引人的地方在于它是一个框架,任何人都可