使用Python中requsts库,从豆瓣下载任意10张照片,代码需要根据分析出的图片URL规律自动构造10个有规律的、有效的图片URL链接,同时还需要自动处理所存储照片的文件名,并将代码在适当的位置添加注释
时间: 2024-06-11 15:09:39 浏览: 239
首先,我们需要了解豆瓣图片链接的规律。在豆瓣电影页面中,每张电影海报的图片链接都包含一个公共的前缀和一个电影的唯一标识符。例如,电影《疯狂动物城》的唯一标识符为26799731,那么该电影的海报图片链接就为:
https://img3.doubanio.com/view/photo/s_ratio_poster/public/p2345476984.jpg
其中,前缀为 https://img3.doubanio.com/view/photo/s_ratio_poster/public/,唯一标识符为 p2345476984,后缀为.jpg。
我们可以通过构造不同的唯一标识符,来获取不同电影的海报图片链接。具体实现过程如下:
```python
import requests
# 构造10个电影的唯一标识符
movie_ids = ['1292052', '26799731', '1291546', '1309046', '26683290', '1292001', '1291549', '27605698', '1292064', '1291571']
# 遍历唯一标识符,构造图片链接并下载图片
for movie_id in movie_ids:
# 构造图片链接
image_url = f'https://img3.doubanio.com/view/photo/s_ratio_poster/public/p{movie_id}.jpg'
# 发送请求,下载图片
response = requests.get(image_url)
# 提取文件名
file_name = f'{movie_id}.jpg'
# 保存图片
with open(file_name, 'wb') as f:
f.write(response.content)
print(f'{file_name} saved')
```
在上面的代码中,我们使用了 f-string 字符串格式化方式,将电影唯一标识符插入到图片链接中。然后,使用 requests 库发送 GET 请求,获取图片内容。接着,我们提取文件名,将图片保存到本地。
需要注意的是,豆瓣对图片链接的访问有一定的限制,如果频繁地访问同一链接,豆瓣可能会限制你的访问。因此,我们在下载图片时需要适当地加入延时,以避免被限制。
另外,由于豆瓣中可能存在一些无效的电影唯一标识符,因此我们需要确保所构造的图片链接是有效的,否则会得到 404 错误。
阅读全文