QQ空间相册爬虫
目标:
- 不声不响的进入别人空间(直接进入内存消耗巨大,速度慢)
- 获取可以获取的所有的照片
- 获取.gif格式的照片(未实现)
- 获取视频(未实现,但可获取视频封面照片)
空间相册分析:
- 首先,不可操作的相册显然不在我们考虑的范围
- 对于可操作的相册我将其分为两个部分,是因为我操作‘你有权限进入的相册’时,我遇到了一些难题,与此同时,我也意识到自己的薄弱之处(我极其讨厌模拟请求形式的爬虫技术,话多了。。。。)
- 由于对于可见相册两种情况难以控制,所以在对图片处理时采用了比较low的方法(截图),并未使用图像下载的方法
流程图:
Json分析:
相册列表Json文件:
照片Json文件:
展开看看:
不好意思,让你看到我恶心的动态了
请求链接分析:
相册列表链接:
相册链接:
注*:
- 没用的关键字,意思就是你写什么都行(TX的工程师= =。。。)
- 相册链接有两种,我就只用一种了哈~
源码:
#encoding:utf-8
from selenium import webdriver
from selenium.webdriver.common.by import By
import time
import re
import json
import importlib,sys
importlib.reload(sys)
import sys
import os
class Preprocessor:
def Analysis_Json(self):
jsonInfor.AnalysisJson().Analysis_Json()
def startSpider(self):
driver = webdriver.Chrome(executable_path='chromedriver.exe')
driver.get('https://qzone.qq.com/')
driver.switch_to.frame('login_frame')
driver.find_element_by_id('switcher_plogin').click()
User_QQnum = '******'#这里填写你的QQ号
User_QQpas = '******'#这里填写你的QQ密码
driver.find_element_by_id('u').clear()
driver.find_element_by_id('u').send_keys(User_QQnum)
driver.find_element_by_id('p').clear()
driver.find_element_by_id('p').send_keys(User_QQpas)
driver.find_element_by_id('login_button').click()
time.sleep(2)
pic_num = 0
#---------------获得g_qzonetoken 和 gtk
'''
注意!!!!!!!!!
此块细节已影藏!!!!
此块细节已影藏!!!!
此块细节已影藏!!!!
此块细节已影藏!!!!
此块细节已影藏!!!!
此块细节已影藏!!!!
--Vision_Tung
2018年10月25日
'''
gtk=self.getGTK(cookie)#通过getGTK函数计算gtk
print(g_qzonetoken)
print(gtk)
targetQQ = '******'#这里填写目标QQ
photo_list =
'''
注意!!!!!!!!!
此块细节已影藏!!!!
此块细节已影藏!!!!
此块细节已影藏!!!!
此块细节已影藏!!!!
此块细节已影藏!!!!
此块细节已影藏!!!!
--Vision_Tung
2018年10月25日
'''
driver.get(photo_list)
html = driver.page_source
f = open(r'photoList'+'.json','w+',encoding='utf-8')
'''
注意!!!!!!!!!
此块细节已影藏!!!!
此块细节已影藏!!!!
此块细节已影藏!!!!
此块细节已影藏!!!!
此块细节已影藏!!!!
此块细节已影藏!!!!
--Vision_Tung
2018年10月25日
'''
f.close()
f = open('photoList.json', encoding='utf-8')
text = f.read()
f.close()
if text.startswith(u'\ufeff'):
'''
注意!!!!!!!!!
此块细节已影藏!!!!
此块细节已影藏!!!!
此块细节已影藏!!!!
此块细节已影藏!!!!
此块细节已影藏!!!!
此块细节已影藏!!!!
--Vision_Tung
2018年10月25日
'''
photosUrl =
'''
注意!!!!!!!!!
此块细节已影藏!!!!
此块细节已影藏!!!!
此块细节已影藏!!!!
此块细节已影藏!!!!
此块细节已影藏!!!!
此块细节已影藏!!!!
--Vision_Tung
2018年10月25日
'''
driver.get(photosUrl)
html = driver.page_source
'''
注意!!!!!!!!!
此块细节已影藏!!!!
此块细节已影藏!!!!
此块细节已影藏!!!!
此块细节已影藏!!!!
此块细节已影藏!!!!
此块细节已影藏!!!!
--Vision_Tung
2018年10月25日
'''
def getGTK(self,cookie):
'''
注意!!!!!!!!!
此块细节已影藏!!!!
此块细节已影藏!!!!
此块细节已影藏!!!!
此块细节已影藏!!!!
此块细节已影藏!!!!
此块细节已影藏!!!!
--Vision_Tung
2018年10月25日
'''
if __name__ == '__main__':
processor = Preprocessor()
processor.startSpider()
print("OK")