Python爬虫实战:使用requests和lxml库爬取美食图片

想要学习如何使用Python编写爬虫程序,从网站上抓取图片吗?这篇文章将带你一步步实现一个简单的图片爬虫,使用requestslxml库从美食网站上下载图片。

代码示例

以下是我们将会使用的Python代码:pythonimport requestsimport osfrom lxml import etree

创建保存图片的目录if not os.path.exists('images'): os.makedirs('images')

base_url = 'https://m.meishij.net/shicaizuofa/caoyu/'page = 1count = 0

while count < 30: # 构造当前页的URL url = base_url + f'p{page}/'

# 发送GET请求获取网页内容    response = requests.get(url)    html = response.text

# 使用lxml库解析网页内容    tree = etree.HTML(html)

# 使用XPath提取图片和名称    image_urls = tree.xpath('//li[@class='pic']/a/img/@src')    names = tree.xpath('//li[@class='pic']/a/div/p[@class='name']/text()')

for image_url, name in zip(image_urls, names):        # 下载图片        response = requests.get(image_url)

    # 保存图片到本地,将图片命名为同一个标签中的名称        image_name = name + '.jpg'        with open(f'images/{image_name}', 'wb') as f:            f.write(response.content)

    count += 1        if count >= 30:            break

page += 1

代码解析

  1. 导入必要的库:requests用于发送HTTP请求,os用于创建目录,lxml用于解析HTML文档。2. 创建保存图片的目录 'images'。3. 定义目标网站的URL和初始页面。4. 使用循环遍历页面,直到下载30张图片。5. 发送GET请求获取网页内容,使用etree.HTML()解析HTML文档。6. 使用XPath表达式提取图片URL和对应的名称。7. 循环遍历图片URL列表,下载图片并保存到本地。

常见问题

  • 代码无法运行? 确保你已经安装了requestslxml库。可以使用以下命令安装: bash pip install requests lxml - 图片无法下载? 检查网站结构是否发生变化,需要更新XPath表达式。- 下载速度慢? 可以考虑使用多线程或异步IO技术优化代码。

希望这篇文章能够帮助你理解如何使用Python爬取图片。请记住,在进行网络爬虫时,请遵守robots协议和网站的 terms of service,避免对网站造成过大的负担。

Python爬虫实战:使用requests和lxml库爬取美食图片

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

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