| 6 | import ConfigParser |
| 7 | |
| 8 | def create_session(): |
| 9 | cf = ConfigParser.ConfigParser() |
| 10 | cf.read('config.ini') |
| 11 | cookies = cf.items('cookies') |
| 12 | cookies = dict(cookies) |
| 13 | from pprint import pprint |
| 14 | pprint(cookies) |
| 15 | email = cf.get('info', 'email') |
| 16 | password = cf.get('info', 'password') |
| 17 | |
| 18 | session = requests.session() |
| 19 | login_data = {'email': email, 'password': password} |
| 20 | header = { |
| 21 | 'User-Agent': 'Mozilla/5.0 (Windows NT 6.1; WOW64) AppleWebKit/537.36 (KHTML, like Gecko) Chrome/43.0.2357.124 Safari/537.36', |
| 22 | 'Host': 'www.zhihu.com', |
| 23 | 'Referer': 'http://www.zhihu.com/' |
| 24 | } |
| 25 | r = session.post('http://www.zhihu.com/login/email', data=login_data, headers=header) |
| 26 | if r.json()['r'] == 1: |
| 27 | print 'Login Failed, reason is:', |
| 28 | for m in r.json()['data']: |
| 29 | print r.json()['data'][m] |
| 30 | print 'So we use cookies to login in...' |
| 31 | has_cookies = False |
| 32 | for key in cookies: |
| 33 | if key != '__name__' and cookies[key] != '': |
| 34 | has_cookies = True |
| 35 | break |
| 36 | if has_cookies is False: |
| 37 | raise ValueError('请填写config.ini文件中的cookies项.') |
| 38 | else: |
| 39 | # r = requests.get('http://www.zhihu.com/login/email', cookies=cookies) # 实现验证码登陆 |
| 40 | r = session.get('http://www.zhihu.com/login/email', cookies=cookies) # 实现验证码登陆 |
| 41 | |
| 42 | with open('login.html', 'w') as fp: |
| 43 | fp.write(r.content) |
| 44 | |
| 45 | return session, cookies |
| 46 | |
| 47 | |
| 48 | if __name__ == '__main__': |