首页
学习
活动
专区
圈层
工具
发布
社区首页 >问答首页 >如何使用python请求登录Coursera?

如何使用python请求登录Coursera?
EN

Stack Overflow用户
提问于 2021-09-20 01:31:59
回答 1查看 42关注 0票数 0

我正在尝试使用python请求登录到coursera。登录form是动态加载的,无法使用GET进行访问。下面是一个演示:

代码语言:javascript
复制
from requests_html import HTMLSession

with HTMLSession() as sess:
    r = sess.get('https://www.coursera.org/?authMode=login')
    email_xp = '//*[@id="email"]'
    print(r.html.xpath(email_xp))
    r.html.render()
    print(r.html.xpath(email_xp))

打印的内容:

代码语言:javascript
复制
[]
[<Element 'input' data-e2e='login-email-input' placeholder='name@email.com' aria-required='false' id='email' name='email' type='email' class=('css-7dsrhu',)>]

代码语言:javascript
复制
https://www.coursera.org/learn/course-i-am-enrolled-in/home/week/1
EN

回答 1

Stack Overflow用户

发布于 2021-09-20 02:30:43

加载页面https://www.coursera.org/?authMode=login将返回一个包含表单的HTML页面。如果您填写并提交表单,它会将该信息收集到指向目标URL的HTTP POST的正文中。这是您需要访问的URL,而不是HTML页面https://www.coursera.org/?authMode=login

如果您尝试登录,它会在此处转发您的凭据:

因此,您需要执行以下操作:

  • HTTP方法: POST
  • URL:https://www.coursera.org/api/login/v3
  • Body (基于实际请求):{"email":"email@email.com","password":"thepassword","recaptchaToken":"thetoken","webrequest":true}

如果响应是状态代码2xx (例如200),则您的登录成功。

您可能想要检查coursera-dl,我认为它是针对Coursera的应用程序接口。还有关于登录到https://api.coursera.org/api/login/v3open issue

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

https://stackoverflow.com/questions/69248276

复制
相关文章

相似问题

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