用 Python 爬取 QQ 空间说说和相册

本文介绍了如何使用Python的selenium模块爬取QQ空间的说说和相册。首先讲解了selenium的安装及Chrome驱动的配置,接着详细描述了模拟登录过程,然后阐述了如何抓取滚动加载的说说内容和通过模拟点击下载相册图片,最后作者分享了回顾这些旧记录的感受。
摘要由CSDN通过智能技术生成

QQ 空间在 2005 年被腾讯开发,已经经历了 15 个年头,在还没有微信的年代,看网友发表的心情、心事、照片大多都在 QQ 空间的里。它承载了80、90 后的大量青春,下面我们一起用 selenium 模块导出说说和相册回忆青春吧

很多人学习python,不知道从何学起。
很多人学习python,掌握了基本语法过后,不知道在哪里寻找案例上手。
很多已经做案例的人,却不知道如何去学习更加高深的知识。
那么针对这三类人,我给大家提供一个好的学习平台,免费领取视频教程,电子书籍,以及课程的源代码!
QQ群:101677771

安装 selenium

selenium 是一个在浏览器中运行,以模拟用户操作浏览器的方式获取网页源码,使用 pip 安装 selenium 模块

pip install selenium

查看 chrome 浏览器版本并下载 对应的 chrome 浏览器驱动

在 http://npm.taobao.org/mirrors/chromedriver 网址中找到相同版本的 chrome 驱动,并放在 python 程序运行的同一个文件夹中

登陆

按 F12 检擦网页源代码,找到登录和密码的文本框,如下图所示

可以使用Python中的第三方库来爬取QQ空间的照片,以下是一个简单的示例代码: ```python import requests import os def download_qzone_photos(qq_number): # 设置QQ空间相册的URL album_url = f'https://user.qzone.qq.com/proxy/domain/photo.qzone.qq.com/fcgi-bin/fcg_list_album_v3?' # 设置请求参数 params = { 'uin': qq_number, 'g_tk': 'xxxxxx', # 替换为你的g_tk值,可以通过登录QQ空间后获取 'format': 'json', 'callback': '_preloadCallback', 't': 'xxxxxxxxx', # 替换为你的t值,可以通过登录QQ空间后获取 'hostUin': qq_number, 'topicId': '', 'pageSize': '100', 'pageNum': '0', 'callback': 'shine0_Callback', 'platform': 'qzone', 'needUserInfo': '1', '_': 'xxxxxxxxx', # 替换为你的时间戳 } # 发送GET请求获取QQ空间相册列表 response = requests.get(album_url, params=params) data = response.text # 提取相册列表中的相册ID album_id_list = [] for line in data.splitlines(): if line.strip().startswith('"id"'): album_id = line.split(':')[1].strip(',"') album_id_list.append(album_id) # 遍历相册列表,下载每个相册中的照片 for album_id in album_id_list: # 设置相册照片列表的URL photo_list_url = f'https://h5.qzone.qq.com/proxy/domain/photo.qzone.qq.com/fcgi-bin/cgi_list_photo?' # 设置请求参数 params['topicId'] = album_id # 发送GET请求获取相册照片列表 response = requests.get(photo_list_url, params=params) data = response.text # 提取相册照片列表中的照片URL photo_url_list = [] for line in data.splitlines(): if line.strip().startswith('"url"'): photo_url = line.split(':')[1].strip(',"') photo_url_list.append(photo_url) # 创建保存照片的文件夹 album_folder = f'QQ空间相册{album_id}' if not os.path.exists(album_folder): os.makedirs(album_folder) # 遍历照片URL列表,下载每张照片 for i, photo_url in enumerate(photo_url_list): response = requests.get(photo_url) with open(os.path.join(album_folder, f'photo_{i}.jpg'), 'wb') as f: f.write(response.content) print(f'已下载照片:{os.path.join(album_folder, f"photo_{i}.jpg")}') ``` 以上代码是通过模拟请求获取QQ空间相册列表和相册照片列表,并将照片下载到本地。请注意,在使用此代码之前,你需要替换其中的参数,如`qq_number`、`g_tk`、`t`和`_`,以及确保你已经登录了QQ空间。 希望这个示例代码对你有帮助!
评论 4
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值