python3 在tumblr模拟登录(不使用api)中,无法成功。
使用的是 requests + beautifulsoup
代码如下:
import requests from bs4 import BeautifulSoup start_url = 'https://www.tumblr.com' # set a session for request s = requests.Session() s.headers.update({'user-agent': 'Mozilla/5.0 (Windows NT 10.0; WOW64; rv:48.0) Gecko/20100101 Firefox/48.0', 'accept-language': 'zh-CN,zh;'} ) # get the form_key for login_in r = s.get(start_url) login_soup = BeautifulSoup(r.text, 'lxml') hidden_p = login_soup.find('p', class_='form_row_hidden').find_all('input') key_dict = {} for input_tag in hidden_p: tmp_dict = input_tag.attrs key_dict.update({tmp_dict['name']: tmp_dict['value']}) user_data_dict = {'determine_email': '×××××××××', 'user[email]': '××××××××', 'user[password]': '××××××××', 'user[age]': '', 'tumblelog[name]': ''} key_dict.update(user_data_dict) # login in tumblr r_login=s.post(start_url, headers=headers, data=key_dict) home_soup=BeautifulSoup(r.text, 'lxml') print(home_soup.title) # 输出仍然为 注册-tumblr 界面 未成功
不知道哪里出错了,谢谢。
我试了一下可以的把headers 和 data 补全
注意里面的form_key每次都不同