python - 使用请求登录 Google 帐户

标签 python python-requests google-account

所以我正在尝试使用 Python 的 Request 模块登录 Google。登录后,我正在尝试访问谷歌教室类(class)。但是,当我打印内容时,似乎仍然停留在登录页面。如果有人可以提供一些关于我在哪里犯错的见解,那将有很大帮助。我正在使用以下代码:

import requests

login_url = 'https://accounts.google.com/ServiceLoginAuth'
class_url = 'https://classroom.google.com/r/MTQ3NTUxMjk5'

s = requests.session()

#payload = {'Email': 'myemail@gmail.com', 'Passwd': 'mypass'} # This way?
login_data = dict(Email='myemail@gmail.com', Passwd='mypass') # or this way?

s.post(login_url, data=login_data)
r = s.get(class_url)

print r.content

经过一些摆弄后,我在正文中发现了一条新消息:

 "Oops! Your browser seems to have cookies disabled. Make sure cookies are enabled 
 or try opening a new browser window."

有什么想法吗?

编辑:

page_source内, 正如预期的那样,有大量的 html。然而,我正在浏览它并发现了一个 </body>标签在最后。所以我用了 find()寻找 <body>标签,但它不在那里...为什么没有显示开头的正文标签以及页面上的其他内容?我已经通过 Chromedriver 和 PhantomJS 使用 selenium 进行了测试,但只有 Chromedriver 给了我完整的 html。为什么 requests 和 PhantomJS 都对我隐藏内容? 我还使用 PhantomJS 截取了一些屏幕截图。 Here is the login page.here is after I click submit.我给了页面足够的时间来加载(10 秒),所以这不是一个因素。这非常令人沮丧。

最佳答案

你需要做这样的事情

a=req.request('GET','http://example.com',headers=head)
cook=a.cookies
a=req.request('POST',page,data=params,headers=head,cookies=cook)

记录服务器给的cookie,然后使用它们。您当然不需要先GET。尝试像往常一样登录并使用嗅探器跟踪详细信息。然后重播您的浏览器发送的所有内容以及它如何使用 cookie。

关于python - 使用请求登录 Google 帐户,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/30221881/

相关文章:

Android:获取用户代理对象中设置的json对象

python - 使用 matplotlib 的plot() 中的 'dashes' 参数绘制连续线

Python 请求 - 从 response.text 中提取数据

PHP OpenID 不适用于 Google/Yahoo 和 'hacks' 修复它...它们安全吗?

python - CookieConflictError - 尝试以编程方式登录 Google 财经时出现 APISID

python - 如何捕获上下文中未定义名称的异常?

ruby-on-rails - 使用 Rails Omniauth gem 和 Google OpenID 时如何不需要用户的电子邮件

android - Buildozer Android Kivy 导入要求失败

Python手写识别软件?

python - Pandas DataFrames 将方括号添加到特定列值