下载妹子图

 1 #导入要使用的模块
 2 import urllib.request
 3 import os
 4 
 5 #定义一个打开页面的函数
 6 def url_open(url):
 7     #找到页面地址,首先要打开地址,加入User-Agent
 8     urllib.request.Request(url,headers={'User-Agent':'Mozilla/5.0 (Windows NT 6.1; WOW64) AppleWebKit/537.36 (KHTML, like Gecko) Chrome/47.0.2526.108 Safari/537.36 2345Explorer/8.5.0.15179'})
 9     response = urllib.request.urlopen(url)
10     html = response.read()
11     return html
12 
13 #定义找到页面地址的函数,返回一个页面数字供拼成页面url
14 def find_pages(url):
15     html = url_open(url).decode('utf-8')  
16     a = html.find('current-comment-page') + 23
17     b = html.find(']',a)
18     return html[a:b]
19 
20 #定义找到图片地址的函数,找到图片的地址,返回一个图片列表
21 def find_imgs(pages_url):
22     #根据页面地址,查找图片地址
23     html = url_open(pages_url).decode('utf-8')
24     img_addrs= []
25     a = html.find('img src=')
26     while a!= -1:
27         
28         b = html.find('.jpg', a, a+255)
29         if b != -1:
30             img_addrs.append(html[a+9:b+4])
31         else:
32             b  = a + 9
33             
34         a = html.find('img src=',b)        
35     return img_addrs
36     
37 
38 #定义保存图片的函数,把图片列表中的图片地址保存成一张张图片
39 def save_imgs(folder,img_addrs):
40     for each in img_addrs:
41         filename = each.split('/')[-1]
42         with open(filename,'wb') as f:
43             img_url = 'http:'+ each
44             f.write(url_open(img_url))
45 
46 
47 #声明主函数,下载妹纸图
48 def download(folder = 'meizi',pages =10):
49     os.mkdir(folder)
50     os.chdir(folder)
51 
52     #要查找的网站
53 
54     url='http://jandan.net/ooxx'
55 
56     #光有要查找的网站主页是不够的,还需要知道其具体的页面数字    
57     for i in range(pages):
58         #遍历一个递增的数字,获取当前页面的数字,逐渐减去递增数字
59         current_pages_num = int(find_pages(url)) - i
60         #拼成当前页面的地址       
61         pages_url = url + '/page-' + str(current_pages_num) + '#comments'
62 
63         #通过页面地址查找到图片地址,返回图片列表
64         img_addrs = find_imgs(pages_url)
65 
66         #有了图片列表后,就需要保存下来
67         save_imgs(folder,img_addrs)
68 
69 if __name__ == '__main__':
70     download()
71     
72     
原文地址:https://www.cnblogs.com/themost/p/6737383.html