关于用正则表达式提取网页内容问题

ok_mir 2009-08-04 04:03:13
我写了一个程序,通过配置不同的提取策略(即正则表达式),就可提取到指定网站下的某一个频道下的所有新闻的部分内容,但经过我数日的测试,发现对于有些网站的新闻内容过大且配置的表达式不正确时,会出现cpu 100%且不中断运行,这个是matcher.find递归运算导致,现请教各位高手,可否有解决此问题的方法.
...全文
127 8 打赏 收藏 转发到动态 举报
写回复
用AI写文章
8 条回复
切换为时间正序
请发表友善的回复…
发表回复
hongsheng11 2009-08-06
  • 打赏
  • 举报
回复
拿代码看看呀
蒋晟 2009-08-06
  • 打赏
  • 举报
回复
Trident, WebKit,Gecko
ok_mir 2009-08-06
  • 打赏
  • 举报
回复
[Quote=引用 2 楼 jiangsheng 的回复:]
作为一门语言,正则表达式的复杂度低于HTML,所以不能用正则表达式来表示所有HTML。你可以试试限制匹配的内容的长度,以及关闭大小写匹配,还是不行的话,你需要一个HTML解析引擎而不是一个正则表达式。
[/Quote]
赞同,有没有好使的HTML解析引擎推荐
yuwenbao 2009-08-05
  • 打赏
  • 举报
回复
用htmlparser过滤,再用正则去匹配
xuexijava 2009-08-05
  • 打赏
  • 举报
回复
关注学习加顶
billhepeng 2009-08-05
  • 打赏
  • 举报
回复
[Quote=引用 2 楼 jiangsheng 的回复:]
作为一门语言,正则表达式的复杂度低于HTML,所以不能用正则表达式来表示所有HTML。你可以试试限制匹配的内容的长度,以及关闭大小写匹配,还是不行的话,你需要一个HTML解析引擎而不是一个正则表达式。
[/Quote]

还是找个HTML解析引擎吧。
蒋晟 2009-08-05
  • 打赏
  • 举报
回复
作为一门语言,正则表达式的复杂度低于HTML,所以不能用正则表达式来表示所有HTML。你可以试试限制匹配的内容的长度,以及关闭大小写匹配,还是不行的话,你需要一个HTML解析引擎而不是一个正则表达式。
猿敲月下码 2009-08-04
  • 打赏
  • 举报
回复
代码贴下吧

81,095

社区成员

发帖
与我相关
我的任务
社区描述
Java Web 开发
社区管理员
  • Web 开发社区
加入社区
  • 近7日
  • 近30日
  • 至今
社区公告
暂无公告

试试用AI创作助手写篇文章吧