python3批量刪除豆瓣分組下的好友

weixin_34321977發表於2016-06-07

python3批量刪除豆瓣分組下的好友

"""
python3批量刪除豆瓣分組下的好友
2016年6月7日 03:43:42 codegay

我兩年前一時衝動在豆瓣關注了很多豆瓣的員工,好多,有四百個。
我現在一時衝動想取消關注...,寫這麼一個指令碼可以用來加快刪除的速度。

cookies還是直接從chrome讀取出來,
參考我之前剛寫的程式碼 python3從chrome瀏覽器讀取cookie,

"""

import os
import sqlite3
import re
import requests
from win32.win32crypt import CryptUnprotectData

def getcookiefromchrome(host='.oschina.net'):
    cookiepath=os.environ['LOCALAPPDATA']+r"\Google\Chrome\User Data\Default\Cookies"
    sql="select host_key,name,encrypted_value from cookies where host_key='%s'" % host
    with sqlite3.connect(cookiepath) as conn:
        cu=conn.cursor()        
        cookies={name:CryptUnprotectData(encrypted_value)[1].decode() for host_key,name,encrypted_value in cu.execute(sql).fetchall()}
        print(cookies)
        return cookies
#執行環境windows 2012 server python3.4 x64 pywin32 chrome 50 
#getcookiefromchrome()
#getcookiefromchrome('.baidu.com')

dbcookies=getcookiefromchrome('.douban.com')

txt=requests.get('https://www.douban.com/contacts/list?tag=1718',cookies=dbcookies).text
#print(txt)
userid=re.findall(r'id="u(\d+)"',txt)

ck=dbcookies['ck']
#ck的值在每次重新登入豆版後會變化。
#可以從網頁中提取,不過我發現cookies也記錄有了。直接提取出來就好了

head={'Content-Type':'application/x-www-form-urlencoded',}

for uid in userid:
    data="people=%s&ck=%s" % (uid,ck)
    #data='people=47362624&ck=jeGZ'
    print(data)
    rs=requests.post('https://www.douban.com/j/contact/removecontact',headers=head,cookies=dbcookies,data=data).text
    print(rs)

相關文章