所以我正在尝试使用 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/