美文网首页
​福利贴!!!过中秋,用python送你一打萌妹子图片

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

作者: d9ce68731cdb | 来源:发表于2018-09-24 15:18 被阅读150次

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

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

    美女真美,哈哈哈.png

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

    这么多套图哇~.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送你一打萌妹子图片

          本文链接:https://www.haomeiwen.com/subject/rezcoftx.html