import weibo
import os
import requests
# 初始化微博相册API
wb = weibo.APIClient(app_key='你的App Key', app_secret='你的App Secret', redirect_uri='你的回调URL')
# 获取授权链接并打印,用户需要手动在浏览器中访问该链接进行授权
auth_url = wb.get_authorize_url()
print(f'请在浏览器中访问以下链接以获取授权码: {auth_url}')
# 用户在浏览器中完成授权后,输入授权码进行授权
auth_code = input('请输入授权码: ')
wb.authorize(auth_code)
# 获取用户的UID
uid = input('请输入用户的UID: ')
# 获取用户相册的相册列表
albums_response = wb.get(f'/album/list_album.json?uid={uid}')
album_ids = [album['album_id'] for album in albums_response['albums']]
# 遍历每个相册并保存图片
for album_id in album_ids:
os.makedirs(f'相册/{album_id}', exist_ok=True)
photos_response = wb.get(f'/album/list_photo.json?album_id={album_id}')
for photo in photos_response['photos']:
photo_url = photo['photo_url']
response = requests.get(photo_url)
file_path = f'相册/{album_id}/{photo["photo_id"]}.jpg'
with open(file_path, 'wb') as file:
file.write(response.content)
print(f'图片 {photo_url} 已保存至 {file_path}')
这段代码首先初始化了微博相册API,然后用户需要手动在浏览器中访问授权链接进行授权,授权完成后可以获取用户相册的相册列表,并遍历每个相册中的图片,将图片保存到本地文件夹中。这个过程展示了如何使用微博API进行数据抓取,并且是进行网络爬虫时的一个常见示例。