如果我必须从HTML页面源中提取某些属性的值。例如:
如果我想获得地址的价值?
<span class="address">413 W. Street</span></span><br>
编辑:对不起,我理解这个问题不对。
我试着删除这个问题但是没能。我在这里发布了一个新问题:
https://stackoverflow.com/questions/9144544/regular-expressions-for-different-attributes
答案 0 :(得分:1)
使用正则表达式从原始html中抓取数据有点困难,因为不同站点的模式可能会发生变化。使用可以浏览DOM树的东西更容易。
如果你正在使用python,你可以使用BeautifulSoup。这是文档。它完全符合你的要求。 Link
答案 1 :(得分:0)
这是一个python代码。
>>> import re
>>> s = '<span class="address">413 W. Street</span><br><span class="phone">218-999-1020</span>, <span class="region">WA</span> <span class="postal-code">87112</span><br>'
>>> re.findall(r'address">(.*?)<.*phone">(.*?)<.*region">(.*?)<.*postal-code">(.*?)<', s)
[('413 W. Street', '218-999-1020', 'WA', '87112')]
>>>
答案 2 :(得分:0)
您不应该使用正则表达式来解析html。这里有很好的解释:
RegEx match open tags except XHTML self-contained tags
但是,如果您知道要解析的html文本的确切结构,可以尝试使用此正则表达式(为C#程序准备,因此可能因您的代码语言而异):
\<span[^">]*class="([^"]+)[^>]*>([^<]*)
然后您可以访问第一个匹配组中的类名称(例如地址,电话等),以及第二个匹配组中的值。