python获取pixiv图片

 1 # -*- coding:utf-8 -*-
 2 import requests,re,os,json,time
 3 HEADERS={"User-Agent":"Mozilla/5.0 (Windows NT 6.1; WOW64; Trident/7.0; rv:11.0) like Gecko"}
 4 #访问头
 5 
 6 print(
 7     '''
 8     --------------------------------------
 9     
10                 获取Pixiv图片
11             
12                             by:冷溪凌寒
13                                  V 1.0
14     --------------------------------------
15     '''
16 )
17 
18 source_list=[]#原图网站列表
19 img_list=[]#原图地址列表
20 
21 def search_user(s,l):
22     url="https://www.pixiv.net/ajax/user/"+s+"/profile/all?lang=zh"
23     HEADERS['Referer'] = url
24     #更改Referer,通过反爬虫机制
25     page = requests.get(url, headers=HEADERS).text
26     #获取作者主页json
27     json_user=json.loads(page).get('body').get('illusts')
28     for i in json_user.keys():
29         l.append(i)
30         #添加到投稿ID列表
31     print("一共找到了%s次投稿,加载中,请稍等..."%len(l))
32 
33 def search_source(img):
34     num=1
35     for i in range(0,len(source_list)):     #遍历所有投稿
36         url="https://www.pixiv.net/ajax/illust/"+source_list[i]+"/pages?lang=zh"
37         #进入投稿页面
38         HEADERS['Referer'] = url
39         #更改Referer,通过反爬虫机制
40         page = requests.get(url, headers=HEADERS).text
41         #获取投稿页json
42         json_illust=json.loads(page).get('body')
43         #获取json内的body列表
44         for j in json_illust:
45             temp=j['urls']
46             #获取body列表内的urls字典
47             temp=temp['regular']
48             #获取键为"regular"的值
49             img.append(temp)
50             #添加到图片ID列表
51             print("加载第%d张图片..."%num)
52             num=num+1  
53     print("一共获取到了%s张图片。"%len(img))
54     #time.sleep(1)
55 
56 def mkdir(s):#创建文件夹
57     isExists=os.path.exists(s)#判断是否创建了文件夹
58     if not isExists:
59         os.makedirs(s)#创建文件夹
60         print("创建文件夹'%s',将图片放入'%s'文件夹内。"%(s,s))
61     else:
62         print("已经有'%s'文件夹,将图片放入'%s'文件夹内。"%(s,s))
63 
64 def download(s,img):
65     num = 1
66     print('------------------------------------------------------------------------------')
67     print('序号\t\t\t图片链接')
68     for i in range(0,len(img)):
69         a = requests.get(url=img[i],headers=HEADERS)
70         f = open(search+"/%s.png"%num, 'wb')#以二进制格式写入文件夹中
71         f.write(a.content)
72         f.close()
73         print("第%s张图片下载完毕;"%num)
74         print("%s.\t\t\t%s"%(num,img[i]))
75         num = num+1
76     print('------------------------------------------------------------------------------')
77     print("下载结束!")
78 
79 
80 search=input("请输入想要搜索的作者id:")
81 #输入作者ID
82 search_user(search,source_list)
83 search_source(img_list)
84 mkdir(search)
85 download(search,img_list)

 

posted @ 2021-03-26 16:06  冷溪凌寒  阅读(463)  评论(0)    收藏  举报