记录爬虫requests登陆豆瓣

记录爬虫requests登陆豆瓣

  • 遇到问题,使用正常的requests.post()进行传参返回结果报错

遇到问题,使用正常的requests.post()进行传参返回结果报错

报错打印{“status”:“failed”,“message”:“parameter_missing”,“description”:“参数缺失”,“payload”:{}}

经过https://fishc.com.cn/thread-169934-1-1.html指引,知道是要新建session,再进行一次get请求才能进行post传参。

#coding = utf-8
import requests

douban_url = 'https://accounts.douban.com/j/mobile/login/basic'

user_agent = 'Mozilla/5.0 (Windows NT 10.0; Win64; x64) AppleWebKit/537.36 (KHTML, like Gecko) Chrome/84.0.4147.45 Safari/537.36 Edg/84.0.522.20'
header = {
    'Referfer' : 'https://accounts.douban.com/passport/login_popup?login_source=anony',
    'User-Agent': user_agent,
}

def loginng_douban(username,password):
    print("开始模拟登陆豆瓣")

    post_url = douban_url
    post_data = {
        'ck':'',
        'name':username,
        'password':password,
        'remember':'false',
        'ticket':''
    }

    #新建session,并使用get请求一次,才能正常进行post传参
    login_session = requests.session()
    response1 = login_session.get(url= douban_url,headers=header)
    response2 = login_session.post(url= douban_url,headers=header,data=post_data)

    print(f'stuts_code = {response2.status_code}')
    print(f'text = {response2.text}')

if __name__ == "__main__":
    loginng_douban('账号','密码'

为什么不能直接使用request.post()进行传参,原因未知。

记录一下

你可能感兴趣的:(request模块使用)