小编典典

是否可以将更强大的HTML解析器连接到Python机械化?

python

我正在尝试使用机械化方法在网站上解析和提交表单,但是似乎内置表单解析器无法检测到表单及其元素。我怀疑它在格式不正确的HTML上令人窒息,我想尝试使用更好地设计用于处理不良HTML(例如lxml或BeautifulSoup)的解析器对其进行预解析,然后将经过整理,清理的输出馈送到表单中解析器。我不仅需要机械化的方式来提交表单,而且还需要维护会话(我正在登录会话中使用此表单。)

如果确实有可能,我不确定该怎么做。我不太熟悉HTTP协议的各种细节,如何使各个部分协同工作,等等。是否有指针?


阅读 134

收藏
2020-12-20

共1个答案

小编典典

机械化网站首页上的大例子中读取:

# 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,然后将其反馈给机械化以进行进一步处理。

2020-12-20