QQ空间相册爬虫

编程知识 更新时间:2023-05-03 03:36:31

QQ空间相册爬虫

目标:

  1. 不声不响的进入别人空间(直接进入内存消耗巨大,速度慢)
  2. 获取可以获取的所有的照片
  3. 获取.gif格式的照片(未实现)
  4. 获取视频(未实现,但可获取视频封面照片)

空间相册分析:
 

  • 首先,不可操作的相册显然不在我们考虑的范围
  • 对于可操作的相册我将其分为两个部分,是因为我操作‘你有权限进入的相册’时,我遇到了一些难题,与此同时,我也意识到自己的薄弱之处(我极其讨厌模拟请求形式的爬虫技术,话多了。。。。)
  • 由于对于可见相册两种情况难以控制,所以在对图片处理时采用了比较low的方法(截图),并未使用图像下载的方法

流程图:

Json分析:

相册列表Json文件:

照片Json文件:

展开看看:

不好意思,让你看到我恶心的动态了

请求链接分析:

相册列表链接:

相册链接:

注*:

  1. 没用的关键字,意思就是你写什么都行(TX的工程师= =。。。)
  2. 相册链接有两种,我就只用一种了哈~

源码:

#encoding:utf-8
from selenium import webdriver
from selenium.webdrivermon.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/')
 
        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")

效果:

更多推荐

QQ空间相册爬虫

本文发布于:2023-04-30 10:11:00,感谢您对本站的认可!
本文链接:https://www.elefans.com/category/jswz/4814559c0344b0aa71152b79a5c43e11.html
版权声明:本站内容均来自互联网,仅供演示用,请勿用于商业和其他非法用途。如果侵犯了您的权益请与我们联系,我们将在24小时内删除。
本文标签:爬虫   相册   空间   QQ

发布评论

评论列表 (有 0 条评论)
草根站长

>www.elefans.com

编程频道|电子爱好者 - 技术资讯及电子产品介绍!

  • 113974文章数
  • 28895阅读数
  • 0评论数