首页
学习
活动
专区
圈层
工具
发布
首页
学习
活动
专区
圈层
工具
MCP广场
社区首页 >问答首页 >Python请求post不做任何事情

Python请求post不做任何事情
EN

Stack Overflow用户
提问于 2016-06-26 11:34:36
回答 2查看 810关注 0票数 1

我正在使用requestscfscrape库登录到https://kissanime.to/Login

代码语言:javascript
运行
复制
'''Login to website'''
def login(self, usr, pw):
    login_url = 'https://kissanime.to/Login'
    sess = requests.Session()

    # login credentials
    payload = {
        'username': usr,
        'password': pw,
        'redirect': ''
    }

    # Creating cfscrape instance of the session
    scraper_sess = cfscrape.create_scraper(sess)
    a = scraper_sess.post(login_url, data=payload)
    print(a.text)
    print(a.status_code)

a.text给我的登录页面和a.status_code给我的一样

这意味着我的登录根本不起作用。我是不是遗漏了什么?根据chrome的网络监视器,我也应该得到status code 302

POST数据图像:

EN

回答 2

Stack Overflow用户

发布于 2016-06-26 14:41:43

我用mechanicalsoup解决了这个问题

代码:

代码语言:javascript
运行
复制
import mechanicalsoup

'''Login to website'''
def login(self, usr, pw):
    login_url = 'https://kissanime.to/Login'

    # Creating cfscrape instance
    self.r = cfscrape.create_scraper()
    login_page = self.r.get(login_url)

    # Creating a mechanicalsoup browser instance with 
    # response object of cfscrape
    browser = mechanicalsoup.Browser(self.r)
    soup = BeautifulSoup(login_page.text, 'html.parser')

    # grab the login form
    login_form = soup.find('form', {'id':'formLogin'})

    # find login and password inputs
    login_form.find('input', {'name': 'username'})['value'] = usr
    login_form.find('input', {'name': 'password'})['value'] = pw

    browser.submit(login_form, login_page.url)
票数 0
EN

Stack Overflow用户

发布于 2016-06-26 11:41:25

此内容来自Requests文档:

许多需要身份验证的web服务都接受HTTP Basic Auth。这是最简单的一种,Requests直接支持它。

requests.get('https://api.github.com/user',auth=HTTPBasicAuth('user','pass'))

您必须将有效负载作为JSON发送。

代码语言:javascript
运行
复制
import requests,json
'''Login to website'''
def login(self, usr, pw):
    login_url = 'https://kissanime.to/Login'
    sess = requests.Session()

    # login credentials
    payload = {
        'username': usr,
        'password': pw,
        'redirect': ''
    }

    # Creating cfscrape instance of the session
    scraper_sess = cfscrape.create_scraper(sess)
    a = scraper_sess.post(login_url, data=json.dumps(payload))
    print(a.text)
    print(a.status_code)

参考:http://docs.python-requests.org/en/master/user/authentication/

票数 -1
EN
页面原文内容由Stack Overflow提供。腾讯云小微IT领域专用引擎提供翻译支持
原文链接:

https://stackoverflow.com/questions/38034984

复制
相关文章

相似问题

领券
问题归档专栏文章快讯文章归档关键词归档开发者手册归档开发者手册 Section 归档