Python爬虫实战:使用requests和BeautifulSoup库下载网站图片

你想学习如何使用Python编写网络爬虫,从网站上批量下载图片吗?这篇文章将为你提供一个简单易懂的教程,带你一步步实现这个目标。

项目目标: 从目标网站上抓取多个页面上的图片,并将它们保存到本地文件夹。

所需工具:

  • Python 3* requests库:用于发送HTTP请求,获取网页内容。* BeautifulSoup库:用于解析HTML文档,提取所需信息。* lxml解析器:BeautifulSoup库依赖的解析器,需要提前安装。

**代码实现:**pythonimport requestsfrom bs4 import BeautifulSoupimport os

def download(url): '''下载图片并保存到本地''' res = requests.get(url) img_data = res.content filename = os.path.join('img1', url.split('/')[-1]) if not os.path.exists(filename): with open(filename, 'wb') as f: f.write(img_data)

def get_html(): '''获取网页HTML并解析图片链接''' for i in range(3, 20): # 获取第3到19页的图片 url = f'http://www.netbian.com/index_{i}.htm' headers = {'User-Agent': 'Mozilla/5.0 (Windows NT 10.0; WOW64) AppleWebKit/537.36 (KHTML, like Gecko) Chrome/105.0.0.0 Safari/537.36'} res = requests.get(url, headers=headers) res.encoding = 'gbk' if res.status_code == 200: html = res.text soup = BeautifulSoup(html, 'lxml') all_list = soup.find(class_='list') all_imgs = all_list.find_all('img') if not os.path.exists('img1'): os.makedirs('img1') for img in all_imgs: src = img['src'] download(src)

if name == 'main': get_html()

代码解析:

  1. 导入必要的库: requests, BeautifulSoup, os。2. 定义download函数: 接收图片URL作为参数,发送GET请求下载图片数据,并将数据以二进制格式写入本地文件。3. 定义get_html函数: * 使用循环遍历多个网页,构造目标URL。 * 设置请求头信息,模拟浏览器访问。 * 发送GET请求获取网页HTML,并指定编码格式为'gbk'。 * 使用BeautifulSoup解析HTML文档。 * 查找包含图片列表的元素,并提取所有图片标签。 * 创建保存图片的文件夹(如果不存在)。 * 遍历所有图片标签,获取图片链接,并调用download函数下载图片。4. 运行程序: 调用get_html函数开始执行爬取任务。

总结:

本教程提供了一个简单的图片爬虫示例,演示了如何使用Python的requests和BeautifulSoup库从网站上下载图片。你可以根据自己的需求修改代码,例如更改目标网站、抓取更多页面或者添加异常处理机制。

SEO优化建议:

  • 标题和描述中包含相关关键词,例如Python爬虫、图片下载、requests、BeautifulSoup等。* 内容结构清晰,使用标题、段落和代码块进行组织。* 代码添加注释,方便理解。* 文章发布到相关技术社区或博客平台,吸引更多目标用户。

希望这篇文章能够帮助你学习Python爬虫,并成功实现自己的图片下载项目!

Python爬虫实战:使用requests和BeautifulSoup库下载网站图片

原文地址: https://www.cveoy.top/t/topic/fRnw 著作权归作者所有。请勿转载和采集!

免费AI点我,无需注册和登录