zoukankan      html  css  js  c++  java
  • 免费 IP 代理池示例


    使用文档

    import requests
    import re
    import random
    from concurrent.futures import ThreadPoolExecutor
    
    import time
    start = time.time()
    
    pool = ThreadPoolExecutor(12)
    
    def get_proxy():
        return requests.get('http://127.0.0.1:5010/get/').json()
    
    def delete_proxy(proxy):
        requests.get("http://127.0.0.1:5010/delete/?proxy={}".format(proxy))
    
    
    url = 'https://www.pearvideo.com/category_loading.jsp?reqType=5&categoryId=9&start=0'
    
    
    video_list=[]
    
    ret = requests.get(url)
    reg = '<a href="(.*?)" class="vervideo-lilink actplay">'
    video_urls = re.findall(reg, ret.text)
    print(video_urls)
    
    
    for url in video_urls:
        proxy = get_proxy().get('proxy')
        print(proxy)
        try:
            ret_detail = requests.get('https://www.pearvideo.com/' + url, proxies={"http": "http://{}".format(proxy)})
            print(proxy)
    
            reg = 'srcUrl="(.*?)",vdoUrl=srcUrl'
            mp4_url = re.findall(reg, ret_detail.text)[0]  # type:str
    
            video_name = mp4_url.rsplit('/', 1)[-1]
    
            dic = {
                'v_name': video_name,
                'v_url': mp4_url
            }
            video_list.append(dic)
    
        except Exception:
            delete_proxy(proxy)
    
    def get_video(dic):
        url = dic['v_url']
        name = dic['v_name']
        print(f'开始下载{name}')
        video_data = requests.get(url=url)
        print(url)
        with open(name, 'wb') as f:
            for line in video_data.iter_content():
                f.write(line)
            print(f'{name}下载完成')
            end = time.time()
            ctime = end - start
            print(ctime)
    
    print(video_list)
    def main():
        for url in video_list:
            done = pool.submit(get_video, url)
    
    
    if __name__ == '__main__':
        main()
        pool.shutdown(wait=True)
    

  • 相关阅读:
    git clone time out
    Window版本的nvm下载安装以及配置
    jdk安装目录查询
    idea 快捷键
    faac简介、编译、使用
    socket编程实例TCP
    jsoncpp简介、下载、编译、使用
    时间时区概念及常用时间函数
    开启博客之旅
    找回了用户名和密码
  • 原文地址:https://www.cnblogs.com/kai-/p/12659803.html
Copyright © 2011-2022 走看看