登录网站并使用Python检索HTML

时间:2014-10-04 05:05:07

标签: python twill

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

我正在使用this person's回答我需要的值:

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,因为我无法使用问题中的网址)

1 个答案:

答案 0 :(得分:1)

您正在使用一个库登录而另一个库然后检索后续页面。 twillurllib未分享有关您的会话的数据。 (Similar issue to this one。)如果您这样做,那么您需要自己管理会话cookie /身份验证。具体而言,您需要复制cookie +数据并将其添加到其他库中的登录后请求中。

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