1

我需要登录一个网站以在我正在做的项目的登录保护页面上访问其 html。

将这个人的答案与我需要的值一起使用:

from twill.commands import *
go('https://example.com/login')

fv("3", "email", "myemail@example.com")
fv("3", "password", "mypassword")

submit()

假设这应该让我登录,然后我运行:

sock = urllib.urlopen("https://www.example.com/activities")
html_source = sock.read()
sock.close()
print html_source

我认为会打印(现在)可访问页面的 html,但只是给我登录页面的 html。我尝试了其他方法(例如使用机械化),但得到了相同的结果。

我错过了什么?某些网站是否限制了这种类型的登录,或者它不适用于 https 之类的?(该网站是 FitBit,因为我无法使用问题中的网址)

4

1 回答 1

2

您正在使用一个库登录,然后使用另一个库来检索后续页面。twill并且urllib不共享有关您的会话的数据。(与此类似的问题。)如果您这样做,那么您需要自己管理会话 cookie / 身份验证。具体来说,您需要复制 cookie + 数据并将其添加到其他库中的登录后请求中。

否则,更合乎逻辑地,对登录和登录后请求使用相同的请求。

于 2014-10-04T05:25:53.840 回答