我正在尝试使用机械化方法在网站上解析和提交表单,但是似乎内置表单解析器无法检测到表单及其元素。我怀疑它在格式不正确的HTML上令人窒息,我想尝试使用更好地设计以处理不良HTML(例如lxml或BeautifulSoup)的解析器对其进行预解析,然后将经过整理,清理的输出馈送到表单中解析器。我不仅需要机械化的方式来提交表单,而且还需要维护 session (我正在登录 session 中使用此表单。)
如果确实有可能,我不确定该怎么做。我不太熟悉HTTP协议(protocol)的各个细节,如何使各个部分协同工作,等等。是否有指针?
最佳答案
从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,然后将其反馈给机械化以进行进一步处理。
关于python - 是否可以将更强大的HTML解析器连接到Python机械化?,我们在Stack Overflow上找到一个类似的问题:https://stackoverflow.com/questions/1782368/