python - 求教:tumblr模拟登录
PHPz
PHPz 2017-04-18 09:27:39
0
1
804

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 界面 未成功

不知道哪里出错了,谢谢。

PHPz
PHPz

学习是最好的投资!

모든 응답(1)
大家讲道理

해봤는데 헤더와 데이터가 완성되더군요
내부의 form_key가 매번 다르다는 점 참고하세요

최신 다운로드
더>
웹 효과
웹사이트 소스 코드
웹사이트 자료
프론트엔드 템플릿
회사 소개 부인 성명 Sitemap
PHP 중국어 웹사이트:공공복지 온라인 PHP 교육,PHP 학습자의 빠른 성장을 도와주세요!