帮助中心

   

热门搜索: 免费续期  推广  永久会员

爬取梨视频视频数据代码教程

简单的入门级爬虫,大家只需要从靠谱的代理服务商那里购买到合适的代理IP,就能够实现换IP。如果遇到复杂一点的爬虫设置,我们应该怎么做呢?

爬取梨视频视频数据代码教程

迅联加速带来基于multiprocessing.dummy线程池的数据爬取的教程:

需求:爬取梨视频的视频信息,并计算其爬取数据的耗时

# 使用线程池爬取梨视频的视频数据

import requests

from lxml import etree

import re

import random

#导入线程池模块

# 导入线程池模块

from multiprocessing.dummy import Pool

pool = Pool(5) # 开5个线程

# 线程池的使用场景: 应用在所有耗时的操作中

headers = {

‘User-Agent’: ‘Mozilla/5.0 (Windows NT 6.1; WOW64) AppleWebKit/537.36 (KHTML, like Gecko) Chrome/69.0.3497.12 Safari/537.36’

}

url = ‘https://www.pearvideo.com/category_1’

page_text = requests.get(url=url,headers=headers).text

tree = etree.HTML(page_text)

li_list = tree.xpath(‘//ul[@id=”listvideoListUl”]/li’)

video_url_list = [] #装所有视频的连接

for li in li_list:

detail_url = “https://www.pearvideo.com/” + li.xpath(“./div/a/@href”)[0]

detail_page_text = requests.get(url=detail_url,headers=headers).text

# 使用正则对视频连接进行解析

video_url = re.findall(‘srcUrl=”(.*?)”,vdoUrl=’, detail_page_text,re.S)[0]

video_url_list.append(video_url)

#对视频的连接发起请求获取视频数据 , 开启多线程

video_data_list = pool.map(getVideoData, video_url_list) # video_data_list存储的就是所有视频的二进制数据

# 使用线程池进行持久化存储操作

pool.map(saveVideoData,video_data_list)

def getVideoData(url):

video_data = requests.get(url=url,headers=headers).content

return video_data

def saveVideoData(data):

fileName = str(random.randint(0,10000))+’.mp4′

with open(fileName,’wb’) as fp:

fp.write(data)

print(fileName,’下载成功’)

这样我们就能够成功的将上面的视频信息抓取下来,保留在本地了。希望大家能够从上面的攻略,日后也可以举一反三来利用。

关闭
19907977089
关注微信公众号,免费送30分钟时长