我正在使用机械化解析并在网站上提交表单,但内部表单解析器似乎无法检测到表单及其元素.我怀疑它是笨拙的
HTML格式,我想尝试使用更好的解析器来解析它,以便处理不良的HTML(比如说lxml或BeautifulSoup),然后将精美的清理输出提供给表单解析器.我需要机械化,不仅提交表单,而且还用于维护会话(我在登录会话中工作).
我不知道如何做到这一点,如果这是真的可能..我不熟悉的HTTP协议的各种细节,如何让各个部分一起工作等任何指针?
解决方法
阅读从
mechanize website第一页的大例子:
# 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,然后将其提交回机械化进行进一步处理.