【爬取目标】
目标网站:https://movie.douban.com/top250
在电影爱好者和数据分析者中,豆瓣电影 Top250 榜单是备受关注的经典电影参考。然而,如果需要获取榜单中每部电影的封面图片资源,手动逐个下载显然非常繁琐耗时。因此,本文将介绍如何使用 Python 爬虫技术,批量下载豆瓣电影 Top250 所有电影的封面图片。
【实现效果】
代码实现批量下载豆瓣 Top250 的图片,存放到指定文件夹中。
一、技术栈和环境版本
Python:3.12.3 编辑器:PyCharm
python 内置模块:
import re # 利用正则提取数据
import os # 目录操作
第三方模块,自行安装:
pip install requests==2.32.5 # 网页数据爬取
二、爬虫实战分析
2.1 导入模块
import requests # 进行网页请求
import re
import os
2.2 分析网页
豆瓣 Top250 页面结构固定,每页显示 25 部电影。翻页参数为 start,例如第 1 页 start=0,第 2 页 start=25,以此类推。图片链接通常在 <img> 标签的 src 属性中。
2.3 设置请求头
为防止被服务器拦截,需要模拟浏览器请求头,特别是 User-Agent。
2.4 发送请求与解析
遍历前 10 页(共 250 部电影),构造 URL 发送请求,获取响应内容后使用正则表达式提取图片地址。
2.5 存储数据
检查本地是否存在目标文件夹,若不存在则创建。将下载的图片以文件名保存至该文件夹。
2.6 主函数启动程序
封装上述逻辑到主函数中,统一调用执行。
三、完整爬虫代码
import requests
import re
import os
def get_image_urls(url):
headers = {
'User-Agent': 'Mozilla/5.0 (Windows NT 10.0; Win64; x64) AppleWebKit/537.36'
}
response = requests.get(url, headers=headers)
response.encoding = response.apparent_encoding
html = response.text
pattern =
urls = re.findall(pattern, html)
urls
():
os.path.exists(folder_name):
os.makedirs(folder_name)
i, url (urls):
:
img_data = requests.get(url).content
file_path = os.path.join(folder_name, )
(file_path, ) f:
f.write(img_data)
()
Exception e:
()
():
base_url =
folder =
page ():
url =
()
urls = get_image_urls(url)
download_images(urls, folder)
__name__ == :
main()


