54讲的动动手作业-豆瓣登录客户端
本帖最后由 一个账号 于 2020-3-7 14:48 编辑完成了一次简单的豆瓣登录过程,写得代码有点简单,还需不断优化;
知识补充:
1、什么是自定义opener、什么是代理、如何设置cookie
ps:我们平时用的urlopen不支持cookie(用来服务器验证客户端身份)和proxy代理(用来反爬)等,所以需要自定义opener,以支持上述功能
链接:https://www.jianshu.com/p/a5460bc773c8
代码清单:
import urllib.request
from http.cookiejar import CookieJar
import json
def main():
# 豆瓣的登录url
loginurl = 'https://accounts.douban.com/j/mobile/login/basic'
#构建CookieJar对象,存储cookie信息
cookie = CookieJar() #程序运行后,可以输出cookie看下,嘻嘻
opener = urllib.request.build_opener(urllib.request.HTTPCookieProcessor(cookie))
#创建一个header头部,用来反爬
user_agent = 'Mozilla/5.0 3578.98 Safari/537.36'
headers ={'User-Agent':user_agent}
'''输入你的账号/密码'''
data = {}
data['name'] = '你的账号'
data['password'] = '你的密码'
data['remember'] = 'false'
req= urllib.request.Request(loginurl,urllib.parse.urlencode(data).encode('utf-8'),headers)
res = opener.open(req)
html = res.read().decode('utf-8')
print(type(html)) #追踪,发现是str类型的
print(html) #同上,需要转化成json格式
a= json.loads(html) #转化为json格式
if a['status'] == 'success':
print('登录成功')
else:
print('登录失败')
if __name__ == '__main__':
main() {:10_256:}支持一波 跟楼主一比对发现果然是小甲鱼的版本太老了 哈哈哈 老哥,我运行了你的代码,登录失败了,返回的json里面显示参数缺失,麻烦解答一下,求求了
{"status":"failed","message":"parameter_missing","description":"参数缺失","payload":{}} 无锋 发表于 2020-5-22 20:18
老哥,我运行了你的代码,登录失败了,返回的json里面显示参数缺失,麻烦解答一下,求求了
{"status":"fai ...
同求
kikyy 发表于 2020-6-10 13:47
同求
www.luyixian.cn/news_show_397031.aspx
感谢楼主{:10_256:}
页:
[1]