Python 爬取James Jean网站插画图片

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网站插画图片)