Python 使用twisted web登录到网页

Python 使用twisted web登录到网页,python,login,web,client,twisted,Python,Login,Web,Client,Twisted,我想使用twisted编写一个简单的web客户机,它使用用户名和密码登录网站,并从给定页面获取一些数据。最好的方法是什么 编辑:添加更多细节:这是一个简单的用户名/密码HTML表单提交。这是一个PHP站点,涉及到一个PHPSESSID cookie。没有验证码。无HTTP身份验证。HTML表单身份验证通过提交身份验证表单完成。这意味着要同时了解动作和方法的形式。对于初学者,您可以手动读取页面源代码并找到这些信息。一个更通用的解决方案是解析页面(可能使用类似lxml或html5lib的东西)并自动

我想使用twisted编写一个简单的web客户机,它使用用户名和密码登录网站,并从给定页面获取一些数据。最好的方法是什么


编辑:添加更多细节:这是一个简单的用户名/密码HTML表单提交。这是一个PHP站点,涉及到一个PHPSESSID cookie。没有验证码。无HTTP身份验证。

HTML表单身份验证通过提交身份验证表单完成。这意味着要同时了解动作和方法的形式。对于初学者,您可以手动读取页面源代码并找到这些信息。一个更通用的解决方案是解析页面(可能使用类似lxml或html5lib的东西)并自动提取这些信息

您还需要知道表单中用户名和密码字段的名称,以及任何其他必填表单字段的名称和正确值

例如,一个如下所示的表单:

<form action="https://example.com/auth" method="post">
    <input type="text" name="Email" id="Email" value="">
    <input type="password" name="Password" id="Password" value="">
</form>
cookie
字典将填入服务器设置的任何cookie的值。将其与将来要使用此身份验证结果的任何
getPage
调用一起传递


尽管如此,我还是喜欢使用scrapy的建议。它会为你做很多低级的事情,让你专注于问题中更有趣的部分。

登录网站的方法有很多。您是否需要提交包含用户名和密码字段的HTML表单?您需要完成验证码吗?您需要提供HTTP身份验证凭据吗?或者提交一个认证cookie,或者执行OAuth登录?我已经在我的问题中添加了更多的参数,但是我觉得最好给出一个通用的解决方案,可以扩展到包含这些选项。没有通用的解决方案。有十几种不同的解决方案。这非常有效。我只是添加了另一个回调来请求另一个页面,并从该页面获取我想要的HTML。Scrapy很好,但我想在一个更大的脚本中使用它,并想提取这个功能。谢谢
from twisted.web.client import getPage

cookies = {}
d = getPage(
    "https://example.com/auth",
    method="POST",
    headers={"content-type": "application/x-www-form-urlencoded"},
    postdata=urllib.urlencode(dict(Email="alice@example.com", Password="secret")),
    cookies=cookies)