首页
学习
活动
专区
圈层
工具
发布
首页
学习
活动
专区
圈层
工具
MCP广场
社区首页 >问答首页 >如何让HTMLParser在出现解析错误后继续解析?

如何让HTMLParser在出现解析错误后继续解析?
EN

Stack Overflow用户
提问于 2011-04-20 23:11:06
回答 3查看 1.9K关注 0票数 1

我正在创建一个网络爬虫,我使用HTMLParser模块来解析超文本标记语言文档中的链接。如果解析器遇到错误的标记,它会引发解析错误并终止应用程序。由于爬虫遍历了整个web,所以这个错误经常会被抛出。

在python.org错误部分,已经有人提出了这个问题。你可以看看这个here。这样做的问题是,我真的不知道如何使用提供的“补丁”,我也不理解评论。

我希望覆盖HTMLParser模块的默认行为,以允许它在出现解析错误后继续解析。

EN

回答 3

Stack Overflow用户

回答已采纳

发布于 2011-04-20 23:13:43

您应该使用BeautifulSoup而不是HTMLParser。BeautifulSoup要健壮得多。

如果你给

美丽的汤不好的标记,它就不会卡住。它会生成一个语法分析树,其意义与原始文档大致相同。这通常足以收集您需要的数据并跑路。

票数 2
EN

Stack Overflow用户

发布于 2011-04-20 23:24:07

我自己并不使用HTMLParser,但是你能不能不把你的语句放在一个try/except块中呢?

代码语言:javascript
运行
复制
try:
  myval = HTMLParser.flimsyFunction()
except HTMLParser.ParseError:
  myval = None
票数 0
EN

Stack Overflow用户

发布于 2012-01-11 18:48:25

有些博客和页面不希望通过机器人和解析器程序对其页面进行扫描和解析。他们想要许多解析器给出错误情况。

很多时候,它在网页的代码中写成

代码语言:javascript
运行
复制
document.write('<sci'+<pt'...)

通过这种方式,用户试图通过javascript插入代码,但是当整个提要被设置为要解析时,解析器会给出一个错误,说“遇到了一个坏标签”,解析器就会停止。

解决这个问题的最好方法是在解析之前删除所有javascript代码,以防您只需要内容,这样您就可以很好地工作了:)

票数 0
EN
页面原文内容由Stack Overflow提供。腾讯云小微IT领域专用引擎提供翻译支持
原文链接:

https://stackoverflow.com/questions/5732588

复制
相关文章

相似问题

领券
问题归档专栏文章快讯文章归档关键词归档开发者手册归档开发者手册 Section 归档