我使用prolog的sgml库来提取有关网页的信息。我使用此指令来提取所有内容:
load_structure('file.html', List, [dialect(sgml), shorttag(false), max_errors(-1)])
系统加载页面但我有一些警告,例如:
WARNING:SGML2PL(sgml): inserted omitted end-tag for "img"
WARNING:SGML2PL(sgml): inserted omitted end-tag for "br"
WARNING:SGML2PL(sgml): entity "amp" does not exist
如何消除此警告?
答案 0 :(得分:1)
我使用这种语法
get_html_file(FileOrStream, P) :-
dtd(html, DTD),
load_structure(FileOrStream, [P],
[ dtd(DTD),
dialect(sgml),
shorttag(false),
syntax_errors(quiet),
max_errors(-1)
]).
选项syntax_errors(quiet)
应该这样做。
我记得我很难解析有错误的旧页面。 错误处理可能很复杂,像tags soup这样的工具更宽容,可以帮助完成工作......