Python 使用twisted web登录到网页
我想使用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的东西)并自动
编辑:添加更多细节:这是一个简单的用户名/密码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)