#使用requests模块 #1.登录lagou #2.登录人人,保存个人首页 import requests from urllib import parse #hashlib是MD5加密的一个python内置模块 #导入hashlib模块 import hashlib ''' python提供了一个进行hash加密的模块:hashlib 下面主要记录下其中的md5加密方式 >>> import hashlib >>> m = hashlib.md5() >>> m.update("Nobody inspects") >>> m.update(" the spammish repetition") >>> m.digest() 'xbbdx9cx83xddx1exa5xc9xd9xdexc9xa1x8dxf0xffxe9' >>> m.hexdigest() 'bb649c83dd1ea5c9d9dec9a18df0ffe9' 对以上代码的说明: 1.首先从python直接导入hashlib模块 2.调用hashlib里的md5()生成一个md5 hash对象 3.生成hash对象后,就可以用update方法对字符串进行md5加密的更新处理 4.继续调用update方法会在前面加密的基础上更新加密 5.加密后的二进制结果 6.十六进制结果 ''' # base_url = 'https://passport.lagou.com/login/login.json' #由于地址比较复杂 并没有得出理想的结果 base_url = 'https://passport.lagou.com/login/login.html?ts=1520939889776&serviceId=lagou&service=https%253A%252F%252Fwww.lagou.com%252F&action=login&signature=CC1F0D168D38EDD43E1323BFD78E0705' def hash(value): #调用hashlib中的md5()生成一个md5 hash对象 m = hashlib.md5() # print(m)#<md5 HASH object @ 0x0000000002938B48> #用update方法对字符串进行md5加密的更新处理 m.update(bytes(value,encoding='utf-8')) #加密后的十六进制结果 sign = m.hexdigest() print(sign) #返回解密后的16进制结果 return sign pwd = hash('123456') pwd_str = 'veenike' + pwd + 'veenike' #再一次对字符串进行更新加密 pwd_str = hash(pwd_str) data = { 'isValidate':'true', 'username':'18811176939', 'password':pwd_str } data = parse.urlencode(data) headers = { 'Accept':'application/json, text/javascript, */*; q=0.01', 'Accept-Language':'zh-CN,zh;q=0.8', 'Connection':'keep-alive', 'Content-Length':str(len(data)), 'User-Agent':'Mozilla/5.0 (Windows NT 6.1; WOW64) AppleWebKit/537.36 (KHTML, like Gecko) Chrome/49.0.2623.221 Safari/537.36 SE 2.X MetaSr 1.0' } #发送请求 response = requests.post(url=base_url,data=data,headers=headers) print(response.content.decode('utf-8'))