正常步骤先上爬取效果图:
原理:从邮箱开始半自动爬取qq好友头像。
首先我们先打开网页版qq邮箱,并登陆上你的qq账户,通过qq邮箱来获取所有人的qq号。
接下来我用Google Chrome 浏览器来演示:
import re
import codecs
import time
import requests
txtpath = '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'\[email protected]')
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 True
def 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()