我正在尝试使用机械化方法在网站上解析和提交表单,但是似乎内置表单解析器无法检测到表单及其元素。我怀疑它在格式不正确的HTML上令人窒息,我想尝试使用更好地设计用于处理不良HTML(例如lxml或BeautifulSoup)的解析器对其进行预解析,然后将经过整理,清理的输出馈送到表单中解析器。我不仅需要机械化的方式来提交表单,而且还需要维护会话(我正在登录会话中使用此表单。)
如果确实有可能,我不确定该怎么做。我不太熟悉HTTP协议的各种细节,如何使各个部分协同工作,等等。是否有指针?
从机械化网站首页上的大例子中读取:
# Sometimes it's useful to process bad headers or bad HTML: response = br.response() # this is a copy of response headers = response.info() # currently, this is a mimetools.Message headers["Content-type"] = "text/html; charset=utf-8" response.set_data(response.get_data().replace("<!---", "<!--")) br.set_response(response)
因此,似乎很有可能用另一个解析器预处理响应,该解析器将重新生成格式正确的HTML,然后将其反馈给机械化以进行进一步处理。