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     
  • 相关阅读:
    移动开发 Native APP、Hybrid APP和Web APP介绍
    urllib与urllib2的学习总结(python2.7.X)
    fiddler及postman讲解
    接口测试基础
    UiAutomator2.0 和1.x 的区别
    adb shell am instrument 命令详解
    GT问题记录
    HDU 2492 Ping pong (树状数组)
    CF 567C Geometric Progression
    CF 545E Paths and Trees
  • 原文地址:https://www.cnblogs.com/themost/p/6737383.html
Copyright © 2011-2022 走看看