1 #!/usr/bin/env python
2 #-*- coding: utf-8 -*-
3
4 import json 5 import urllib 6 import requests 7
8
9 # 指定url路徑,經過查看url獲取的信息:0/0是全部的json信息
10 pre_url = "http://gank.io/api/data/福利/0/0"
11
12 # http://gank.io/
13 # 分類數據: http://gank.io/api/data/數據類型/請求個數/第幾頁
14 # 數據類型: 福利 | Android | iOS | 休息視頻 | 拓展資源 | 前端 | all
15 # http://gank.io/api/data/福利/10/1
16 # 請求個數: 數字,大於0
17 # 第幾頁:數字,大於0
18
19
20
21 # 圖片路徑列表,有些圖片地址是https的,爬取的話需要驗證證書,不爬取https開頭的圖片
22 http_image_list = [] 23 #https_image_list = []
24
25 # 1.獲取路徑的json數據
26 response = requests.get(pre_url).text 27 # 2.jsong格式轉換成字符串
28 data_dict = json.loads(response) 29 # 3.獲取圖片地址數量
30 num = len(data_dict['results']) 31 for i in range(0,num): 32 url_web = data_dict['results'][i]['url'] 33 # http開頭的圖片路徑
34 if url_web.split(':')[0] == 'http': 35 http_image_list.append(url_web) 36 # https開頭的圖片路徑
37 # if url_web.split(':')[0] == 'https':
38 # https_image_list.append(url_web)
39
40 # 保存圖片地址為文件
41 with open('http_image.txt','w') as obj: 42 data = json.dumps(http_image_list) 43 obj.write(data) 44
45 # with open('https_image.txt','w') as obj:
46 # data = json.dumps(https_image_list)
47 # obj.write(data)
48
49 # 圖片保存路徑
50 http_save_path = "D:\\zipai\\"
51
52 # 具體格式可以調整
53 for x in range(0, 304): 54 urllib.request.urlretrieve(http_image_list[x], http_save_path + str(x) + '.jpg') 55 print('保存http第%s張圖片' % x) 56
57 # 網站有反爬機制,爬取到303個時被攔截報錯,此時,翻轉過來,倒着爬取
58 rev = http_image_list[::-1] 59
60 for x in range(0, 267): 61 urllib.request.urlretrieve(rev[x], http_save_path + str(x+304) + '.jpg') 62 print('保存http第%s張圖片' % x)