【发布时间】:2012-07-02 12:48:40
【问题描述】:
我正在尝试在具有已知模式的 HTML 页面中查找字符串。 例如,在以下 HTML 代码中:
<TABLE WIDTH="100%">
<TR><TD ALIGN="LEFT" width="50%"> </TD>
<TD ALIGN=RIGHT VALIGN=BOTTOM WIDTH=50%><FONT SIZE=-1>( <STRONG>1</STRONG></FONT> <FONT SIZE=-2>of</FONT> <STRONG><FONT SIZE=-1>1</STRONG> )</FONT></TD></TR></TABLE>
<HR>
<TABLE WIDTH="100%">
<TR> <TD ALIGN="LEFT" WIDTH="50%"><B>String 1</B></TD>
<TD ALIGN="RIGHT" WIDTH="50%"><B><A Name=h1 HREF=#h0></A><A HREF=#h2></A><B><I></I></B>String</B></TD>
</TR>
<TR><TD ALIGN="LEFT" WIDTH="50%"><b>String 2.</B>
</TD>
<TD ALIGN="RIGHT" WIDTH="50%"> <B>
String 3
</B></TD>
</TR>
</TABLE>
<HR>
<font size="+1">String 4</font><BR>
...
我想找到 String 4 ,我知道它总是在
之间<HR><font size="+1">
和</font><BR>
如何使用 RE 搜索字符串?
编辑:
我尝试了以下方法,但没有成功:
p = re.match('<HR><font size="+1">(.*?)</font><BR>',html)
谢谢。
【问题讨论】:
-
你考虑过用 xpath 代替正则表达式吗?
-
我尝试过使用 BeautifulSoup。它不起作用,因为我在多个页面上运行解析器并且它们之间有细微的变化。
-
@Rgo:XPath 查询(使用 lxml)可以处理有细微差别的页面。
-
您尝试使用 re.match 无效,因为 re.match 尝试从头开始匹配。
+也有特殊含义,所以应该转义。但你走对了。
标签: python html regex parsing html-parsing