如何解析HTML/XML并从中提取信息?
我需要匹配所有这些开始标记:
<p>
<a href="foo">
Run Code Online (Sandbox Code Playgroud)
但不是这些:
<br />
<hr class="foo" />
Run Code Online (Sandbox Code Playgroud)
我想出了这个,并希望确保我做对了.我只抓住了a-z
.
<([a-z]+) *[^/]*?>
Run Code Online (Sandbox Code Playgroud)
我相信它说:
/
,然后我有这个权利吗?更重要的是,你怎么看?
似乎stackoverflow上的每个问题,其中提问者使用正则表达式从HTML中获取一些信息将不可避免地有一个"答案",表示不使用正则表达式来解析HTML.
为什么不?我知道那里有引用 - 不引用"真正的"HTML解析器,比如Beautiful Soup,我相信它们是强大而有用的,但是如果你只是做一些简单,快速或肮脏的事情,那么为什么当一些正则表达式语句运行得很好时,麻烦使用如此复杂的东西?
此外,是否有一些基本的东西,我不了解正则表达式,这使得它们一般是解析的错误选择?
试图在页面上找到链接.
我的正则表达式是:
/<a\s[^>]*href=(\"\'??)([^\"\' >]*?)[^>]*>(.*)<\/a>/
Run Code Online (Sandbox Code Playgroud)
但似乎失败了
<a title="this" href="that">what?</a>
Run Code Online (Sandbox Code Playgroud)
我如何更改我的正则表达式来处理未首先放在标签中的href?
当我从某些页面抓取内容时,该脚本会提供相对URL.是否可以使用Simple HTML DOM获取绝对URL?
可能重复:
解析URL的网站
如何使用PHP获取网页中的所有链接?
我需要获得一个链接列表: -
我想要获取href(http://www.google.com)和文字(Google)
-------------------情况是: -
我正在构建一个爬虫,我希望它能获得数据库表中存在的所有链接.
php ×4
html ×2
html-parsing ×2
regex ×2
dom ×1
parsing ×1
webpage ×1
xhtml ×1
xml ×1
xml-parsing ×1