福利贴!!!过中秋,用python送你一打萌妹子图片

既然是中秋了,虽然陆陆续续更新,但是中秋肯定是要送一波福利的!!!但是思来想去,送月饼是不是太俗气了。重点来了!

这次小编用python爬虫教你怎么爬取网站图(fu)片(li),看图看图,画风是这样子的~

福利贴!!!过中秋,用python送你一打萌妹子图片_第1张图片
美女真美,哈哈哈.png

刚一会会,小编已经下载了辣么多套图了,想要的话,私信回复“中秋快乐”四个字发你哦~

福利贴!!!过中秋,用python送你一打萌妹子图片_第2张图片
这么多套图哇~.png

话说回来,我们肯定不是直接要图片的,我们是要学习源码的!告诉小编对不对!

好!听到你的回答,小编很开心(哈哈哈),我们接下来看一看代码的实现

首先,import库

import requests
import os
from bs4 import BeautifulSoup

在指定位置创建文件夹,这里是在 D:./meinvtupian/ 这个位置创建文件夹,同时将文件夹地址作为路径返回。

def create_dir(path):
    '''
    :param path: 给定一个文件名
    :return: 在./image下创建文件夹并返回路径
    '''
    url = "D:./meinvtupian/" + path
    #判断当前文件夹是否存在
    if os.path.exists(url):
        print("文件夹已经存在")
    else:
        os.makedirs(url)
        print("%s创建成功"%url)
    #将当前文件夹作为路径返回
    return url

接下来自定义一个用 requests 库访问网页的函数,返回网站给出的响应(responses)。

def get_page(url):
    '''
    :param url: 访问地址
    :return: 返回response
    '''
    Agent = "Mozilla/5.0 (Windows NT 10.0; Win64; x64) AppleWebKit/537.36 (KHTML, like Gecko) Chrome/67.0.3396.87 Safari/537.36"
    headers = {"User-Agent": Agent}
    r = requests.get(url,headers=headers)
    return r

下一步便是获取图集地址,每一组套图都有单独的网址,我们需要对响应部分进行解析,然后分解出所需要的套图首地址。

def get_pictures_url(url):
    '''

    :param url: 优美网地址
    :return: 无返回
    '''
    for i in range(5,50):
        r = get_page(url +str(i)+'.htm')
        if r.status_code == 200:
            soup = BeautifulSoup(r.content)
            pictures = soup.find('div',class_ = "TypeList")
            pictures_url = pictures.find_all("a",class_ = "TypeBigPics")
            for pictures_dress in pictures_url:
                #print(pictures_dress['href'])
                get_picture_url(pictures_dress['href'],create_dir(pictures_dress.find("div", class_ ="ListTit").string))
        else:
            continue

取得套图首地址后,便可以根据这个地址再次访问服务器,获取单个图片的地址,此时执行写入操作便可以完成下载图片的任务啦这么快,紧不紧张,刺不刺激

def get_picture_url(url,dress):
    '''

    :param url: 图集地址
    :param dress: 图片存储地址
    :return: 无返回
    '''
    for i in range(1,50):
        #根据网页地址规则设定新的url
        if i != 1:
            r = get_page(url[:-4] + '_' + str(i) + '.htm')
        else:
            r = get_page(url)
        if r.status_code == 200:
            soup = BeautifulSoup(r.content)
            picture_dress = soup.find("div",class_ = "ImageBody" )
            with open(dress +'/'+ picture_dress.find("img")['alt']+'('+str(i)+')'+'.jpg', 'wb') as f:
                if picture_dress.find("img")['src']:
                    f.write(get_page(picture_dress.find("img")['src']).content)
                    print("%s已存储" % (picture_dress.find("img")['alt'] + str(i)))
        else:
            print("-------------------------------------")
            break

最后抛出主函数执行。

if __name__ == "__main__":
    get_pictures_url("http://www.umei.cc/meinvtupian/")

这里的标签页当然还可以自己修改,下载你们想要的专题妹子~

你可能感兴趣的:(福利贴!!!过中秋,用python送你一打萌妹子图片)