日韩性视频-久久久蜜桃-www中文字幕-在线中文字幕av-亚洲欧美一区二区三区四区-撸久久-香蕉视频一区-久久无码精品丰满人妻-国产高潮av-激情福利社-日韩av网址大全-国产精品久久999-日本五十路在线-性欧美在线-久久99精品波多结衣一区-男女午夜免费视频-黑人极品ⅴideos精品欧美棵-人人妻人人澡人人爽精品欧美一区-日韩一区在线看-欧美a级在线免费观看

歡迎訪問 生活随笔!

生活随笔

當前位置: 首頁 > 编程语言 > python >内容正文

python

y空间兑换代码_Python爬虫实战:QQ空间全自动点赞工具

發布時間:2023/12/2 python 53 豆豆
生活随笔 收集整理的這篇文章主要介紹了 y空间兑换代码_Python爬虫实战:QQ空间全自动点赞工具 小編覺得挺不錯的,現在分享給大家,幫大家做個參考.

QQ空間自動點贊

  • 前景提要目標確定分析介紹登陸獲取cookie尋找XML尋找可變參數獲取第一個空間動態尋找點贊所需的URL尋找可變參數功能提升到秒贊全部代碼最后還是希望你們能給我點一波小小的關注。奉上自己誠摯的愛心

私信小編01即可獲取大量Python學習資料

前景提要

因為我周圍的小伙伴們天天跟我說的最多的一句話就是:空間第一條點贊。
所以說我還不如直接做一個自動點贊的代碼呢,免得天天催我點贊。


目標確定

  • QQ空間秒贊

分析介紹

登陸獲取cookie

首先既然是對 QQ空間的一系列操作,自然是先解決登陸方面,在這篇文章里面我就不過多介紹了,因為我上幾期之前對QQ空間已經做了一定的介紹了。直接放出鏈接就好。歡迎看博主以前的文章

def search_cookie(): qq_number = input('請輸入qq號:') if not __import__('os').path.exists('cookie_dict.txt'): get_cookie_json(qq_number) with open('cookie_dict.txt', 'r') as f: cookie=json.load(f) return Truedef get_cookie_json(qq_number): password = __import__('getpass').getpass('請輸入密碼:') from selenium import webdriver from selenium.webdriver.chrome.options import Options login_url = 'https://i.qq.com/' chrome_options =Options() chrome_options.add_argument('--headless') driver = webdriver.Chrome(options=chrome_options) driver.get(login_url) driver.switch_to_frame('login_frame') driver.find_element_by_xpath('//*[@id="switcher_plogin"]').click() time.sleep(1) driver.find_element_by_xpath('//*[@id="u"]').send_keys(qq_number) driver.find_element_by_xpath('//*[@id="p"]').send_keys(password) time.sleep(1) driver.find_element_by_xpath('//*[@id="login_button"]').click() time.sleep(1) cookie_list = driver.get_cookies() cookie_dict = {} for cookie in cookie_list: if 'name' in cookie and 'value' in cookie: cookie_dict[cookie['name']] = cookie['value'] with open('cookie_dict.txt', 'w') as f: json.dump(cookie_dict, f) return Truedef get_g_tk(): p_skey = self.cookie['p_skey'] h = 5381 for i in p_skey: h += (h << 5) + ord(i) g_tk = h & 2147483647

尋找XML

當我們拿到cookie信息和g_tk這個參數之后,繼續去尋找空間好友動態的XML在何處。
首先點到XML位置一個個查找,發現有一個feeds3_html_more很像,點進去發現的確是我們要找的url鏈接。

尋找可變參數

這個鏈接所需要的參數有很多,在這里列舉出來

  • uin:
  • scope:
  • view:
  • daylist:
  • uinlist:
  • gid:
  • flag:
  • filter:
  • applist:
  • refresh:
  • aisortEndTime:
  • aisortOffset:
  • getAisort:
  • aisortBeginTime:
  • pagenum:
  • externparam:
  • firstGetGroup:
  • icServerTime:
  • mixnocache:
  • scene:
  • begintime:
  • count:
  • dayspac:
  • sidomain:
  • useutf8:
  • outputhtmlfeed:
  • rd:
  • usertime:
  • windowId:
  • g_tk:
  • qzonetoken:
  • g_tk:

這些參數中類似于可變參數的一共有五個。

  • qzonetoken
  • windowId
  • rd
  • usertime
  • g_tk
  • qzonetoken 參數在源碼中是個可變的“定值”,因為每次刷新這個參數都會變,但是源碼中卻給出了他的具體值。直接獲取即可。
  • def get_space(): your_url = 'https://user.qzone.qq.com/' + str(qq_number) html = requests.get(your_url,headers=headers,cookies=cookie) if html.status_code == 200: qzonetoken = re.findall('window.g_qzonetoken =(.*?);',html.text,re.S)[1].split('"')[1] return True
  • windowId 與 rd 雖說每次刷新結果都不同,但是經過博主多次實驗得出,這兩個參數對整體并沒有什么影響,可以直接抄下來。
  • 'rd': '0.9311604844249088','windowId': '0.51158950324406',
  • usertime 參數看似很眼熟,是個時間戳參數,因為位數不對,說明應該是被放大了一千倍。
  • 'usertime': str(round(time.time() * 1000)),
  • g_tk 參數上次教程已給出。在JavaScript中分析即可獲得。
  • def get_g_tk(): p_skey = self.cookie['p_skey'] h = 5381 for i in p_skey: h += (h << 5) + ord(i) g_tk = h & 2147483647

    獲取第一個空間動態

    我們拿到XML以及各個參數后,即可訪問該網頁獲取其返回值了。
    但是這個返回與其他的有一些不同的是,它不僅僅是個json文件,我們無法獲取后直接轉換成字典格式去給我們使用,這就很麻煩。

    我們獲取字符串后,首先先將前后不一致的都切片扔掉,之后經過一系列處理后發現,我們很難將這個看似像json格式的字符串轉換成字典。
    在這里我繼續介紹一個第三方庫demjson。

    demjson 可以解決不正常的json格式數據

    demjson的使用方法很簡單。

    encode將 Python 對象編碼成 JSON 字符串decode將已編碼的 JSON 字符串解碼為 Python 對象

    # 例子# -*- coding: utf-8 -*-import demjsonjs_json = "{x:1, y:2, z:3}"py_json1 = "{'x':1, 'y':2, 'z':3}"py_json2 = '{"x":1, "y":2, "z":3}'data = demjson.decode(js_json)print(data)# {'y': 2, 'x': 1, 'z': 3}data = demjson.decode(py_json1)print(data)# {'y': 2, 'x': 1, 'z': 3}data = demjson.decode(py_json2)print(data)# {'y': 2, 'x': 1, 'z': 3}

    我們使用demjson直接將該字符串轉換為耳熟能詳的字典格式,提取其中的data的data,即為前八條動態的每個參數,但我們這里只要第一個說說的動態信息。

    text = html.text[10:-2].replace(" ", "").replace('','')json_list = demjson.decode(text)['data']['data']qq_spaces = json_list[0]

    我們拿到其信息后,先提取一些我們比較想知道的東西,比如名字、QQ號、發布時間、所獲贊數、說說內容、說說地址等等結果。
    在 qq_spaces 參數中我們發現里面有一個很長也很特殊的一個結果是 html 結果,這個結果里面很長,簡單來看是個網頁常規代碼,應該是被JavaScript寫入到網頁中了,既然不是全部代碼,那么只能用正則提取一下里面的具體我們需要的東西了。

    content = str(qq_spaces['html'])try:zanshu = re.findall('(.*?)人覺得很贊 ',content,re.S)[0]except:return Nonetime_out = str(qq_spaces['feedstime'])print("名字:"+str(qq_spaces['nickname']))print("QQ號:"+str(qq_spaces['opuin']))print("時間:"+time_out)print('贊數:'+zanshu)times = qq_spaces['abstime']his_url = re.findall('data-curkey="(.*?)"',content,re.S)[0] 創作挑戰賽新人創作獎勵來咯,堅持創作打卡瓜分現金大獎

    總結

    以上是生活随笔為你收集整理的y空间兑换代码_Python爬虫实战:QQ空间全自动点赞工具的全部內容,希望文章能夠幫你解決所遇到的問題。

    如果覺得生活随笔網站內容還不錯,歡迎將生活随笔推薦給好友。