返回

爬虫实战(二):爬优美图库

后端

一、网址分析

  1. 打开优美图库网站,进入美女图片专栏。

  2. 使用分析工具分析页面源代码,找到图片导航所对应的URL。

  3. 点开其中一个页面,分析每个页面的地址。

  4. 通过分析发现,图片导航所对应的URL都存在一个li标签里面。

二、编写爬虫程序

  1. 导入必要的库。
import requests
from bs4 import BeautifulSoup
import os
  1. 定义爬取图片的函数。
def get_image_url(url):
    """
    爬取图片的URL
    :param url: 图片所在的页面URL
    :return: 图片的URL
    """
    response = requests.get(url)
    soup = BeautifulSoup(response.text, 'html.parser')
    image_url = soup.find('img', class_='pic-large')['src']
    return image_url
  1. 定义下载图片的函数。
def download_image(image_url, path):
    """
    下载图片
    :param image_url: 图片的URL
    :param path: 图片保存的路径
    """
    response = requests.get(image_url)
    with open(path, 'wb') as f:
        f.write(response.content)
  1. 定义爬取图片的函数。
def crawl_images(url):
    """
    爬取图片
    :param url: 图片所在的页面URL
    """
    # 获取图片导航所对应的URL
    response = requests.get(url)
    soup = BeautifulSoup(response.text, 'html.parser')
    image_nav_urls = [li.a['href'] for li in soup.find_all('li', class_='wp-item')]

    # 创建保存图片的文件夹
    if not os.path.exists('images'):
        os.mkdir('images')

    # 爬取每一页图片
    for image_nav_url in image_nav_urls:
        # 获取图片的URL
        image_url = get_image_url(image_nav_url)

        # 下载图片
        download_image(image_url, 'images/' + image_url.split('/')[-1])
  1. 运行爬虫程序。
crawl_images('https://www.umeitu.com/tag/%E7%BE%8E%E5%A5%B3%E5%9B%BE%E7%89%87/')