我正在使用 python 的请求模块在网页上填写表格。我将表单作为 POST 请求提交,效果很好。我从 POST 中得到了预期的响应。然而,它是一个多步骤的形式;在第一次“提交”之后,站点在同一页面上加载另一个表单(使用 AJAX)。发布响应有这个 HTML 页面。现在,我如何使用此响应来填写新页面上的表单?我可以以某种方式将 Requests 模块与 Twill 或 Mechanize 交织在一起吗?
这是 POST 的代码:
import requests
from requests.auth import HTTPProxyAuth
import formfill
from twill import get_browser
from twill.commands import *
import mechanize
from mechanize import ParseResponse, urlopen, urljoin
http_proxy = "some_Proxy"
https_proxy = "some_Proxy"
proxyDict = {
"http" : http_proxy,
"https" : https_proxy
}
auth = HTTPProxyAuth("user","pass")
r = requests.post("site_url",data={'key':'value'},proxies=proxyDict,auth=auth)
上面的响应r包含由提交该表单产生的新 HTML 页面。这个 HTML 页面也有一个我必须填写的表格。我可以r以某种方式将其发送到斜纹或机械化,并使用机械化的表单填写 API 吗?任何想法都会有所帮助。