返回
爬虫实战(二):爬优美图库
后端
2023-10-01 17:20:42
一、网址分析
-
打开优美图库网站,进入美女图片专栏。
-
使用分析工具分析页面源代码,找到图片导航所对应的URL。
-
点开其中一个页面,分析每个页面的地址。
-
通过分析发现,图片导航所对应的URL都存在一个li标签里面。
二、编写爬虫程序
- 导入必要的库。
import requests
from bs4 import BeautifulSoup
import os
- 定义爬取图片的函数。
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
- 定义下载图片的函数。
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)
- 定义爬取图片的函数。
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])
- 运行爬虫程序。
crawl_images('https://www.umeitu.com/tag/%E7%BE%8E%E5%A5%B3%E5%9B%BE%E7%89%87/')