美文网首页Python3自学 爬虫实战Python爬虫作业
Python 爬取James Jean网站插画图片

Python 爬取James Jean网站插画图片

作者: 高杆python | 来源:发表于2017-06-22 15:22 被阅读0次
    webres.jpg
    最近工作比较忙,好久没有写爬虫啦,今天恰巧和一个搞设计的朋友聊天,发现他有爬虫这方面的需要,一时技痒,就完成了这份爬虫代码!
    今天爬取的网站是,著名的插画艺术家美籍台湾人士James Jean的作品网站,图片不是特别多,但是每一幅作品都充满诡异与华丽的融合。网站上还有他为Prada等品牌设计作品。
    Prada

    1.代码:

    # coding:utf-8
    import sys
    import requests
    from bs4 import BeautifulSoup
    from pathlib import Path
    def _create_url():
          root_dir = _create_dir('./examples')
          url = "https://www.jamesjean.com"
          html = requests.get(url).text
          soup = BeautifulSoup(html,'lxml')
          aas = soup.select('li.gallery-collection > a')
          for aa in aas:
            href = aa.get("href")
            http = url + href
            dir_name = aa.text
            download_dir = _create_dir(root_dir / dir_name)
            get_data(http,download_dir)
    def _create_dir(name):
        """
        根据传入的目录名创建一个目录,这里用到了 python3 引入的 pathlib 库。
        """
        directory = Path(name)
        if not directory.exists():
            directory.mkdir()
        return directory
    
    
    def get_data(url, save_dir):
          headers = {
              'User-Agent':'Mozilla/5.0 (Windows NT 6.1; WOW64) AppleWebKit/537.36 (KHTML, like Gecko) Chrome/55.0.2883.87 Safari/537.36'
          }
          html = requests.get(url,headers).text
          soup = BeautifulSoup(html,'lxml')
          imgs = soup.find_all(name = 'img', class_ = 'loading')
          i = 1
          for img in imgs:
            img_url = img.get('data-src')
            data = requests.get(img_url,headers)
            photo_name = str(i)+".jpg"
            save_path = save_dir / photo_name
            fp = open(save_path,'wb')
            fp.write(data.content)
            fp.close()
            i+=1
    
    if __name__ == '__main__':
           _create_url()
    

    2.效果图:

    文件夹.png 2016.png

    3.代码解析:
    登录网站可以看到作品都是根据年份等条件进行检索后显示的,那么首先要确定出检索不同年份作品的URl,根据不同的年份在进行爬取,并将爬取的结果按照年份分别建立文件夹进行存储,这里存储的位置的examples文件夹是和Python爬虫文件同一路径下的相对路径!代码比较简单,下面再贴上几幅作品,供大家欣赏。

    2016-2.jpg 2013-2.jpg 2012-52.jpg

    相关文章

      网友评论

        本文标题:Python 爬取James Jean网站插画图片

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