设计一个爬虫程序,爬取豆瓣首页全部图片,并把图片保存到本地一个路径下。

本文介绍了一种使用Python进行图片爬取的方法,通过修改代码中的路径设置,可以在本地目录保存从豆瓣网站抓取的图片。文章详细展示了如何利用urllib库发送HTTP请求,解析网页数据并提取图片链接,最后将图片保存到指定目录。

摘要生成于 C知道 ,由 DeepSeek-R1 满血版支持, 前往体验 >

代码中只需要把路径改为自己电脑上的路径。

import urllib.request, socket, re, sys, os
# 定义文件保存路径
targetPath = "D:/python"
def saveFile(path):
    # 检测当前路径的有效性
    if not os.path.isdir(targetPath):
        os.mkdir(targetPath)
    # 设置每个图片的路径
    pos = path.rindex('/')
    t = os.path.join(targetPath, path[pos + 1:])
    return t
# 用if __name__ == '__main__'来判断是否是在直接运行该.py文件
# 网址
url = "https://www.douban.com/"
headers = {
    'User-Agent': 'Mozilla/5.0 (Windows NT 10.0; WOW64) AppleWebKit/537.36 (KHTML, like Gecko) '
}
req = urllib.request.Request(url=url, headers=headers)
res = urllib.request.urlopen(req)
data = res.read()
for link, t in set(re.findall(r'(https:[^s]*?(jpg|png|gif))', str(data))):
    print(link)
    try:
        urllib.request.urlretrieve(link, saveFile(link))
    except:
        print('失败')


运行结果:

在这里插入图片描述
可以看到D/python路径下多出爬取的图片:
在这里插入图片描述

爬取豆瓣电影Top250的图片通常需要通过网络抓取技术实现,比如Python的Scrapy库可以辅助完成这个任务。以下是简单的步骤: 1. **准备环境**:首先安装必要的库,如requests、BeautifulSoup4用于处理网页内容,以及PIL或OpenCV用于图片下载。 ```bash pip install requests beautifulsoup4 pillow ``` 2. **获取HTML源码**:使用requests库发送GET请求到豆瓣电影Top250页面的URL,然后解析响应的HTML内容。 ```python import requests from bs4 import BeautifulSoup url = 'https://movie.douban.com/top250' response = requests.get(url) html_content = response.text ``` 3. **解析HTML**:使用BeautifulSoup解析HTML,找到包含图片的元素,通常是电影海报的`img`标签。提取出图片链接(src属性)。 ```python soup = BeautifulSoup(html_content, 'lxml') image_links = [img['src'] for img in soup.select('.cover')] ``` 4. **下载图片**:创建一个保存路径,然后使用requests库下载每一张图片保存本地。 ```python save_path = 'douban_movie_pics' if not os.path.exists(save_path): os.makedirs(save_path) for link in image_links: response_image = requests.get(link, stream=True) with open(f'{save_path}/{os.path.basename(link)}', 'wb') as f: for chunk in response_image.iter_content(chunk_size=1024): if chunk: f.write(chunk) ``` 5. **注意**:在实际操作中,可能会遇到反爬机制、动态加载、版权问题等,需遵守网站的robots.txt协议,适当设置延迟以避免过于频繁的请求。
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值