吾爱破解 - LCG - LSG |安卓破解|病毒分析|www.52pojie.cn

 找回密码
 注册[Register]

QQ登录

只需一步,快速开始

查看: 2772|回复: 2
收起左侧

[Python 转载] python爬去bilibili cos图片

[复制链接]
心狠手辣 发表于 2019-3-15 16:32
#python3运行
import re
import requests
import os
import json


class BiliBili(object,):
    def __init__(self,page_num,dir_name,file_name):
        self.base_url = "https://api.vc.bilibili.com/link_draw/v2/Photo/list?category=cos&type=hot&page_num={}".format(page_num)
        self.headers = {"User-Agent": "Mozilla/5.0 (Windows NT 10.0; WOW64; Trident/7.0; rv:11.0) like Gecko"}
        self.count = file_name
        self.dir_name = dir_name
       
        #发送请求
    def send_request(self, url):
        resopnse = requests.get(url, headers=self.headers)
        data = resopnse.content.decode()
        json_data = json.loads(data)['data']['items']
        str_data = json.dumps(json_data)
        return str_data
       
        #发送图片链接请求
    def secend_request(self, url):
        resopnse = requests.get(url, headers=self.headers)
        data = resopnse.content
        return data
       
        #对基本url进行解析
    def analysis_url(self, data):
        pattern = re.compile('c": "(.*?)", "i')
        url = re.findall(pattern, data)
        return url
       
        #保存图片信息
    def save_file(self,dir_name,names,data,):
        with open( "{}/".format(dir_name)+ str(names) + '.jpg', 'wb') as f:
            f.write(data)
        #启动
    def run(self):
        try:
            os.mkdir(self.dir_name)
        except:
            pass
      
        data = self.send_request(self.base_url)
        url_list = self.analysis_url(data)
        
        for url in url_list:
            data = self.secend_request(url)
            self. save_file(self.dir_name,self.count,data,)
            print("正在下载第{}个图片".format(self.count))
            self.count += 1
        return "下载完毕"


if __name__ == '__main__':
    while True:
        page_num = int(input("请输入下载的页数"))
        dir_name = input("请输入想要存放的文件夹的名字")
        file_name = int(input("请输入文件的起始名字。仅限纯数字"))
        if type(file_name) == int:
            test = BiliBili(page_num,dir_name,file_name)
            test.run()

发帖前要善用论坛搜索功能,那里可能会有你要找的答案或者已经有人发布过相同内容了,请勿重复发帖。

py看考场 发表于 2019-3-16 12:04
挺厉害,学习一下
lanbuyu 发表于 2019-3-16 20:14
我也是初学爬虫的人,看了你的代码 冒昧的问一下 os.mkdir中的参数不应该是路径吗?还是说可以直接写个文件名,程序地址处创建文件夹?////以上疑问已经解决  谢谢分享
您需要登录后才可以回帖 登录 | 注册[Register]

本版积分规则 警告:本版块禁止灌水或回复与主题无关内容,违者重罚!

快速回复 收藏帖子 返回列表 搜索

RSS订阅|小黑屋|处罚记录|联系我们|吾爱破解 - LCG - LSG ( 京ICP备16042023号 | 京公网安备 11010502030087号 )

GMT+8, 2024-5-21 13:08

Powered by Discuz!

Copyright © 2001-2020, Tencent Cloud.

快速回复 返回顶部 返回列表