Python读取谷歌(google)浏览器cookie并实现登录

来源:互联网 发布:淘宝拖鞋 编辑:程序博客网 时间:2024/06/05 01:09

以下代码实现使用谷歌浏览器的cookie登录京东网站并获取订单列表

# -*- coding:'utf-8' -*-import sqlite3import cookielibimport urllib2import os,sysimport win32cryptdef build_opener_with_chrome_cookies(domain=None):    cookie_file_path = os.path.join(os.environ['LOCALAPPDATA'], r'Google\Chrome\User Data\Default\Cookies')    if not os.path.exists(cookie_file_path):        raise Exception('Cookies file not exist!')    conn = sqlite3.connect(cookie_file_path)    # sql = 'select host_key, name, value, path from cookies'    sql="select host_key,name,encrypted_value,path from cookies";    if domain:        sql += ' where host_key like "%{}%"'.format(domain)    cookiejar = cookielib.CookieJar()  # No cookies stored yet    for row in conn.execute(sql):        pwdHash = str(row[2])        try:            ret = win32crypt.CryptUnprotectData(pwdHash, None, None, None, 0)        except:            print 'Fail to decrypt chrome cookies'            sys.exit(-1)        cookie_item = cookielib.Cookie(            version=0, name=row[1], value=ret[1],            port=None, port_specified=None,            domain=row[0], domain_specified=None, domain_initial_dot=None,            path=row[3], path_specified=None,            secure=None,            expires=None,            discard=None,            comment=None,            comment_url=None,            rest=None,            rfc2109=False,        )        cookiejar.set_cookie(cookie_item)  # Apply each cookie_item to cookiejar    conn.close()    proxy = {'http':'27.24.163.155:10'}    return urllib2.build_opener(urllib2.ProxyHandler(proxy),urllib2.HTTPCookieProcessor(cookiejar))  # Return opener)  # Return openerif __name__ == '__main__':    opener = build_opener_with_chrome_cookies(domain='jd.com')    headers = {'User-Agent': "Mozilla/5.0 (Windows NT 10.0; WOW64; rv:48.0) Gecko/20100101 Firefox/48.0",               'Referer': 'https://www.jd.com/'}    url='https://order.jd.com/center/list.action'    req = urllib2.Request(url, headers=headers)    html_doc = opener.open(req).read()    print html_doc.decode('gbk').encode('utf-8')
0 0
原创粉丝点击