自动填写HTML登录表单

loginform的Python项目详细描述


https://secure.travis-ci.org/scrapy/loginform.png?branch=masterCoverage report

loginform是一个库,用于填充给定登录url的html登录表单, 用户名和密码。自动推断要填充的表单和字段。

它是在lxml form filling之上实现的,因此依赖于lxml。

用法

用法非常简单,最好用一个示例来说明:

>>> from loginform import fill_login_form
>>> import requests
>>> url = "https://github.com/login"
>>> r = requests.get(url)
>>> fill_login_form(url, r.text, "john", "secret")
([('authenticity_token', 'FQgPiKd1waDL+pycPH8IGutirTnP69SiZgm0zXwn+VQ='),
  ('login', 'john'),
  ('password', 'secret')],
 u'https://github.com/session',
 'POST')

也可以将其用作快速调试登录表单的工具:

$ python -m loginform -u john -p secret https://github.com/login
url: https://github.com/session
method: POST
payload:
- authenticity_token: FQgPiKd1waDL+pycPH8IGutirTnP69SiZgm0zXwn+VQ=
- login: john
- password: secret

测试

一组真实的样本被用来保持这个库的测试。那些 样品管理如下:

首先,选择要尝试的站点,找出其登录URL,然后运行以下命令 在其上尝试loginform的命令:

$ python test_samples.py https://github.com/login
[
   "https://github.com/login",
   [
      [
         [
            "authenticity_token",
            "NsdVWGpzxKmn7zSJSOdgnDcLIzIdJlCTO754LiEv2W4="
         ],
         [
            "login",
            "USER"
         ],
         [
            "password",
            "PASS"
         ]
      ],
      "https://github.com/session",
      "POST"
   ]
]

从输出你可以判断它是否有效。如果成功了,太好了。如果它 如果没有,您将破解loginform.py使其工作,然后添加示例 使用:

$ python test_samples.py https://github.com/login -w github

注意,我们给了示例一个名称(在本例中为github)。

要列出所有可用的示例,请使用:

$ python test_samples.py -l

要运行所有测试,请安装tox并运行:

$ tox

欢迎加入QQ群-->: 979659372 Python中文网_新手群

推荐PyPI第三方库


热门话题
java使用Eclipse Helios for Web项目   java指定行。作为编译器设置的分隔符?   osm映射中带有osmdroid的java标记   java Android ClassNotFoundException在路径:DexPathList上未找到类   java从j2me调用GWT方法   更新到java 8后的aspectj问题   如何仅从根元素java,com提取文本内容。滴虫软件。是的。html   安卓公司。谷歌。火基。数据库DatabaseException:未能转换java类型的值。将字符串改为长字符串   从java中的方法返回arraylist变量   java如果将引用重新分配给同步块内的锁对象,会是什么?   java下载。使用spring mvc的资源文件中的xlsx文件   java Eclipse提供了什么工具来运行Eclipse中未包含的程序?   spring boot Java泛型如何读取传递给泛型方法的类型上的字段或调用方法   Javacard中的javaecdsa签名