Python爬虫:轻松爬取网页图片

作者:新兰2024.01.08 10:53浏览量:4

简介:在Python中,使用爬虫技术可以轻松地爬取网页上的图片。本文将介绍如何使用Python爬虫来爬取网页图片,并提供一些实用的技巧和建议。

在Python中,爬取网页图片需要使用到一些特定的库,如requests、BeautifulSoup和Pillow等。下面是一个简单的示例代码,演示如何使用这些库来爬取网页上的图片。
首先,需要安装requests和BeautifulSoup库。在终端或命令行中运行以下命令即可:

  1. pip install requests beautifulsoup4 pillow

然后,可以使用以下代码来爬取网页上的图片:

  1. import requests
  2. from bs4 import BeautifulSoup
  3. from PIL import Image
  4. import io
  5. def get_images(url):
  6. # 发送HTTP请求获取网页内容
  7. response = requests.get(url)
  8. response.encoding = 'utf-8' # 设置编码方式为UTF-8
  9. soup = BeautifulSoup(response.text, 'lxml') # 使用lxml解析器解析网页内容
  10. images = [] # 存储图片的列表
  11. # 遍历网页中的所有图片标签,并将图片URL添加到列表中
  12. for img in soup.find_all('img'):
  13. img_url = img.get('src') # 获取图片URL
  14. if 'http' in img_url: # 如果图片URL以http开头,则直接使用该URL下载图片
  15. images.append(img_url)
  16. else: # 如果图片URL以相对路径开头,则需要拼接成完整的URL后再下载图片
  17. base_url = 'http://' + url.split('http://')[1].split('/')[0] + '/' # 获取基础URL,拼接成完整的URL
  18. images.append(base_url + img_url)
  19. return images
  20. # 测试代码:爬取某网页上的所有图片URL
  21. url = 'http://example.com' # 替换成你要爬取的网页地址
  22. images = get_images(url)
  23. for img in images:
  24. print(img) # 打印图片URL

上述代码中,我们定义了一个名为get_images的函数,该函数接受一个网页地址作为参数,并返回该网页上所有图片的URL列表。在函数中,我们首先发送HTTP请求获取网页内容,并使用BeautifulSoup库解析网页内容。然后,遍历网页中的所有img标签,并获取每个img标签的src属性值(即图片URL)。如果图片URL以http开头,则直接使用该URL下载图片;如果图片URL以相对路径开头,则需要拼接成完整的URL后再下载图片。最后,将所有图片URL存储在一个列表中并返回。在测试代码中,我们调用get_images函数来爬取指定网页上的所有图片URL,并打印出来。需要注意的是,在实际使用中需要根据实际情况进行适当的修改和调整。