一个爬电影的多进程爬虫

今天又是待在家里的一整天,闲着没事干,写写爬虫打发时间,
注释什么的都在下面了,不想写了,慢慢看吧

from multiprocessing import Pool
import requests
from lxml import etree
import os
if not os.path.exists('./测试'):
    os.mkdir('./测试')
headers={
    'User-Agent':'Mozilla/5.0 (Windows NT 10.0; WOW64) AppleWebKit/537.36 (KHTML, like Gecko) Chrome/70.0.3538.25 Safari/537.36 Core/1.70.3722.400 QQBrowser/10.5.3751.400'}


def download(i):
    url='https://cn3.5311444.com/hls/20181006/497ddbfe3e702ea73920fb839aa61862/1538820486/film_0%04d.ts' % i # 设置视频碎片下载地址 设置占位符 %04d 4个字符串 tmd 坑爹的%s 浪费我几个小时
    html=requests.get(url,headers=headers)
    print(url)

    ret=html.content # 将获取到的链接
    with open('./测试/{}'.format(url[-14:]),'wb')as f: # 保存单个ts文件
        f.write(ret) # 写入单个ts并保存在本地



if __name__=='__main__': # 进程池接口 必须要!!!
    p=Pool(25)  # 设置25个进程下载
    for i in range(1192):  # 设定循环次数,i用于给前面定义的占位符提供参数
        p.apply_async(download, args=(i, )) # 开启进程池 开启下载

    p.close() # 线程关闭
    p.join()    # 线程阻塞

# 最后是在本地的cmd下面操作
# 切换到ts的保存盘符下
# 到保存ts文件根文件夹下
# copy /b *.ts 文件名字 就可以拼接好了
搜索