|
|
100鱼币
本帖最后由 304079992 于 2016-11-22 22:40 编辑
想利用本地登录过的Cookie访问淘宝,但是一直没成功,访问豆瓣、百度、鱼C论坛都测试成功
求大神指点,或有其他方法访问到淘宝请告知,先谢谢了!
- import requests
- import os
- import sqlite3
- import win32crypt
- def get_chrome_cookies(url):
- os.system('copy "C:\\Users\\Administrator\\AppData\\Local\\Google\\Chrome\\User Data\\Default\\Cookies" D:\\python-chrome-cookies')#复制谷歌浏览器存储Cookie路径到D盘
- #处理Cookice
- Cookice = sqlite3.connect("d:\\python-chrome-cookies")
- ret_list = []
- ret_dict = {}
- for row in Cookice.execute("select host_key, name, path, value, encrypted_value from cookies"):
- if row[0] != url:
- continue
- ret = win32crypt.CryptUnprotectData(row[4], None, None, None, 0)
- ret_list.append((row[1], ret[1]))
- ret_dict[row[1]] = ret[1].decode()
- Cookice.close()
- os.system('del"D:\\python-chrome-cookies"')#删掉Cookice
- return ret_dict
- #模拟头部
- headers = {
- 'user-agent':'Mozilla/5.0 (Windows NT 10.0; WOW64) AppleWebKit/537.36 (KHTML, like Gecko) Chrome/54.0.2840.99 Safari/537.36',
- # 'accept':'text/html,application/xhtml+xml,application/xml;q=0.9,image/webp,*/*;q=0.8',
- # 'accept-language':'zh-CN,zh;q=0.8',
- # 'accept-encoding':'gzip, deflate, br',
- # 'referer':''
- }
- #打开链接
- x = requests.get("http://www.taobao.com", cookies = get_chrome_cookies(".taobao.com"),headers=headers)
- print(x.text)
- if "用户名" in x.text :
- print("登录成功")
- else:
- print("登录失败")
复制代码 |
最佳答案
查看完整内容
通过观察, Python 获取的源代码文件大小远小于真实访问源代码大小
大胆猜测登录验证与 JS 有关, 在浏览器中禁用 JS 再进行真实访问, 结果提示未登录
结论: 需要使用 JS 解释器来模拟登录 (PhantomJS)
|