进程池 爬去梨视频 视频资源

# 导入requests网络请求模块
import requests
# 导入lxml标签匹配模块
from lxml import etree
# 导入re 正则匹配模块
import re
#导入系统路径模块
import os
# 导入进程模块
import multiprocessing

# 存在视频网址
mylist = []

# 请求函数
def Data(url):
    #发送请求
    test = requests.get(url)
    # with open(‘./pa.html‘,‘w‘) as pa:
    #     pa.write(test.text.encode(‘gbk‘,‘ignore‘).decode(‘gbk‘,‘ignore‘))
    # 返回二进制流
    return test.content

# 匹配标签函数
def Pipa():
    # 调用请求函数
    res = Data(‘https://www.pearvideo.com/category_10‘)
    # 利用etree完整HTML数据
    html = etree.HTML(res)
    # 匹配标签
    url = html.xpath(‘//*[@id="categoryList"]/li‘)
    # 循环匹配到的标签进行操作
    for i in url:
        # 拼接完整的详情页网址
        data = ‘https://www.pearvideo.com/‘ + str(i.xpath(‘./div/a/@href‘)[0])
        # 添加到准备好的列表内
        mylist.append(data)

# 定义好写入方法
def xiangqing(url):
    # 获取url切片用于视频名称
    name = str(url).split(‘/‘)[-1] + ‘.mp4‘
    print(name)
    # 调用请求方法获取详情页
    res = Data(url)
    #由于视频网址不在标签里而是在Jquery内所有没办法使用xpath 这里使用re匹配视频源所在网址
    url = re.findall(
        ‘srcUrl="(.*?)",vdoUrl=srcUrl,skinRes="//www.pearvideo.com/domain/skin",videoCDN="//video.pearvideo.com";‘,
        str(res))[0]
    # 调用请求方法把视频所在的网址放进去获取资源
    res = Data(url)
    # 设置路径
    path = "C:/Users/nxy/Videos/PLAYERUNKNOWN‘S BATTLEGROUNDS/"
    # 判断路径是否存在
    if not os.path.exists(path):
        # 不存在则创建
        os.makedirs(path)
    #写入
    with open(path + name, "wb") as f:
        f.write(res)

if __name__ == "__main__":
    #调用进行添加列表
    Pipa()
    print(mylist)
    #调用进程池
    pool = multiprocessing.Pool(4)
    # 用map方法传参调用进程池
    pool.map(xiangqing, mylist)

原文地址:https://www.cnblogs.com/Niuxingyu/p/10467828.html

时间: 2024-11-09 03:47:05

进程池 爬去梨视频 视频资源的相关文章

进程池爬取并存入mongodb

设置进程池爬取拉钩网: # coding = utf-8 import json import pymongo import pandas as pd import requests from lxml import etree import time from multiprocessing import Pool # 设置mongodb client = pymongo.MongoClient('localhost') db = client['lagou'] # 查询的岗位名称 POSIT

Python--线程队列(queue)、multiprocessing模块(进程对列Queue、管道(pipe)、进程池)、协程

队列(queue) 队列只在多线程里有意义,是一种线程安全的数据结构. get与put方法 ''' 创建一个"队列"对象 import queue q = queue.Queue(maxsize = 10) queue.Queue类即是一个队列的同步实现.队列长度可为无限或者有限.可通过Queue的构造函数的可选参数maxsize来设定队列长度.如果maxsize小于1就表示队列长度无限. 将一个值放入队列中: q.put() 调用队列对象的put()方法在队尾插入一个项目.put()

梨视频,进程池、线程池爬取

[TOC] 进程池 import requests, re, time from multiprocessing.dummy import Pool import random IpPool = [{'http': '183.147.230.104: 8118'}, {'http': '60.217.64.237: 31923'}, {'http': '221.193.50.166: 8118'}] url = 'https://www.pearvideo.com/category_loadin

requests爬取梨视频主页所有视频

爬取梨视频步骤: 1.爬取梨视频主页,获取主页所有的详情页链接 - url: https://www.pearvideo.com/ - 1) 往url发送请求,获取主页的html文本 - 2) 解析并提取详情页相对路径video_1637593,与主页拼接即可 - 拼接后获取的是电影详情页url: - detail_url: https://www.pearvideo.com/ + video_1637593 2.往电影详情页发送请求,解析并提取真实视频url--> .mp4后缀的视频url -

使用进程池模拟多进程爬取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爬虫实战:爬取腾讯视频的评论

前言 本文的文字及图片来源于网络,仅供学习.交流使用,不具有任何商业用途,版权归原作者所有,如有问题请及时联系我们以作处理. 作者: 易某某 PS:如有需要Python学习资料的小伙伴可以加点击下方链接自行获取 http://note.youdao.com/noteshare?id=3054cce4add8a909e784ad934f956cef 一.前提条件 安装了Fiddler了(用于抓包分析) 谷歌或火狐浏览器 如果是谷歌浏览器,还需要给谷歌浏览器安装一个SwitchyOmega插件,用于

camtasis studio 未能创建视频内存资源。

camtasis studio failed to create a video memory resource.camtasis studio 未能创建视频内存资源. 在工具--选项中取消GPU加速go to “Tools” -> “Options” -> “Program” tab -> clear the check box from “Use GPU acceleration if available”. camtasis studio 从 8 开始可以利用GPU来渲染视频.

类+进程池的方法爬取喜马拉雅

python是一门面向对象的语言,那么我们在写爬虫的时候自然也可以用到类的封装来实现爬虫. 一.类的使用 首先是对类的封装,可以将一些请求头写入构造函数当中(因为后面有进程池使用,所以构造函数不需要带参数,如果带上在后面的进程池中,也会报错). 二.Ajax数据处理 喜马拉雅的音乐也是采用Ajax的数据交互方式,所以需要用到urllib来构造请求的网址,因此在类的函数中需要传递一个参数,来控制访问的页面的内容. 1 data = { 2 "albumId": 3627097, 3 &q

爬天极网开哥讲线程池和进程池.py

#导入多线程模块:import threadingimport osimport requests # 发送请求import timefrom bs4 import BeautifulSoup # 解析文本#导入线程池执行器和进程池执行器:from concurrent.futures import ThreadPoolExecutor,ProcessPoolExecutor#导入获取CPU的数量cpu_count模块的功能:from multiprocessing import cpu_cou