zoukankan      html  css  js  c++  java
  • 下载妹子图

     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     
  • 相关阅读:
    51nod 1067 Bash游戏 V2
    洛谷 P1454 圣诞夜的极光 == codevs 1293 送给圣诞夜的极光
    bzoj4754: [Jsoi2016]独特的树叶
    bzoj 4241: 历史研究
    bzoj 1266 [AHOI2006] 上学路线
    bzoj4571: [Scoi2016]美味
    bzoj4570: [Scoi2016]妖怪
    51nod 1238 最小公倍数之和 V3
    一个康托展开的板子
    poweroj1745: 餐巾计划问题
  • 原文地址:https://www.cnblogs.com/themost/p/6737383.html
Copyright © 2011-2022 走看看