正常步骤先上爬取效果图:
文章图片
原理:从邮箱开始半自动爬取qq好友头像。
首先我们先打开网页版qq邮箱,并登陆上你的qq账户,通过qq邮箱来获取所有人的qq号。
接下来我用Google Chrome 浏览器来演示:
- 在qq邮箱网页界面 摁 F12 键 ,然后在弹出的界面 点击 Network 选项。
文章图片
- 然后刷新一下网页,并在在红色箭头的地方输入laddr_lastlist
,然后回车
文章图片
- 然后单击下面搜索到的选项,右边会弹出一个界面,然后单击Response(响应),然后下边就是我们所需要的内容,我也没有什么办法,毕竟是半自动的,所以,就需要Ctrl+c Ctrl+v,来将内容粘贴复制到一个txt文本上。
文章图片
然后我们发现qq头像框保存在这么个地址上
http://qlogo.store.qq.com/qzone/88888888/88888888/100
即:
http://qlogo.store.qq.com/qzone/qq号/qq号/100
示例:
文章图片
好了得到这些后,我们就开始码代码了。
直接上代码,基本上注释都给解释完了,这里我就不再过多介绍了。:
import re
import codecs
import time
import requeststxtpath = 'E:/大二下半学期资料/头像/qqfriends.txt'# 你从QQ邮箱中粘贴的txt文件
savepath = 'E:/大二下半学期资料/头像/touxiang/'# 头像存储位置friends_count = 0# 初始化好友数量def gettouxiang(txtpath):# 输入你的txt文件存储位置
file = codecs.open(txtpath, 'rb', 'utf-8')
s = file.read()
pattern = re.compile(r'\d+@qq.com')
all_mail = pattern.findall(s)# 正则表达式匹配所有的qq号
all_link = []# 用于存储需要访问的链接
url = 'http://qlogo.store.qq.com/qzone/'
for mail in all_mail:
qq = mail.replace('@qq.com', '')
l = url + qq + '/' + qq + '/100'
all_link.append(l)
i = 0 #初始化下载图片数量
friends_count = len(all_link)# 获取朋友头像数量
print('共{}个头像'.format(friends_count))
for link in all_link:# 遍历链接,下载头像
i += 1
saveurl = savepath + str(i) + '.png'
print('第 %d 个' % i, end=' ')
savaImg(link, saveurl)
return Truedef savaImg(picurl, saveurl):# 存储图片函数,picurl是图片的URL,saveurl是本地存储位置
try:
start = time.time()
response = requests.get(picurl, stream=True)
with open(saveurl,'wb') as file:# 下载图片到本地
file.write(response.content)
print('【下载完成】:', end=' ')
end = time.time()
time_ = end-start
print('用时: %.2f秒' % (time_))
return True
except:
print('worry')
#savaImg(picurl, saveurl)def main():
gettouxiang(txtpath)#获取头像if __name__ == '__main__':
main()
【用python爬取qq好友的头像并都下载到本地】运行实例:
文章图片
推荐阅读
- 推荐系统论文进阶|CTR预估 论文精读(十一)--Deep Interest Evolution Network(DIEN)
- Python专栏|数据分析的常规流程
- Python|Win10下 Python开发环境搭建(PyCharm + Anaconda) && 环境变量配置 && 常用工具安装配置
- Python绘制小红花
- Pytorch学习|sklearn-SVM 模型保存、交叉验证与网格搜索
- OpenCV|OpenCV-Python实战(18)——深度学习简介与入门示例
- python|8. 文件系统——文件的删除、移动、复制过程以及链接文件
- 爬虫|若想拿下爬虫大单,怎能不会逆向爬虫,价值过万的逆向爬虫教程限时分享
- 分布式|《Python3网络爬虫开发实战(第二版)》内容介绍
- java|微软认真聆听了开源 .NET 开发社区的炮轰( 通过CLI 支持 Hot Reload 功能)