我正在学习美丽的汤和Python,在这种情况下,我正在做着#34; Baby name"使用包含不同年份流行婴儿名称的html文件集(例如baby1990.html等)来练习Regex上的Google Tutorial。如果您对此感兴趣,可以找到此数据集:https://developers.google.com/edu/python/exercises/baby-names
html文件包含一个特定的表格,用于存储流行的婴儿名称,其html代码如下:
<table width="100%" border="0" cellspacing="0" cellpadding="4" summary="formatting">
<tr valign="top"><td width="25%" class="greycell">
<a href="../OACT/babynames/background.html">Background information</a>
<p><br />
Select another <label for="yob">year of birth</label>?<br />
<form method="post" action="/cgi-bin/popularnames.cgi">
<input type="text" name="year" id="yob" size="4" value="1990">
<input type="hidden" name="top" value="1000">
<input type="hidden" name="number" value="">
<input type="submit" value=" Go "></form>
</td><td>
<h3 align="center">Popularity in 1990</h3>
<p align="center">
<table width="48%" border="1" bordercolor="#aaabbb"
cellpadding="2" cellspacing="0" summary="Popularity for top 1000">
<tr align="center" valign="bottom">
<th scope="col" width="12%" bgcolor="#efefef">Rank</th>
<th scope="col" width="41%" bgcolor="#99ccff">Male name</th>
<th scope="col" bgcolor="pink" width="41%">Female name</th></tr>
<tr align="right"><td>1</td><td>Michael</td><td>Jessica</td> # Targeted row
<tr align="right"><td>2</td><td>Christopher</td><td>Ashley</td> # Targeted row
etc...
html文件中还有另一个我不想捕获的表,并且有以下html代码。
<table width="100%" border="0" cellspacing="0" cellpadding="4">
<tbody>
<tr><td class="sstop" valign="bottom" align="left" width="25%">
Social Security Online
</td><td valign="bottom" class="titletext">
<!-- sitetitle -->Popular Baby Names
</td>
</tr>
<tr bgcolor="#333366"><td colspan="2" height="2"></td></tr>
<tr><td class="graystars" width="25%" valign="top">
<a href="../OACT/babynames/">Popular Baby Names</a></td><td valign="top">
<a href="http://www.ssa.gov/"><img src="/templateimages/tinylogo.gif"
width="52" height="47" align="left"
alt="SSA logo: link to Social Security home page" border="0"></a><a name="content"></a>
<h1>Popular Names by Birth Year</h1>September 12, 2007</td>
</tr>
<tr bgcolor="#333366"><td colspan="2" height="1"></td></tr>
</tbody></table>
在比较两个表的表格标签时,我得出结论,目标表格的独特特征 - 我试图捕捉的表格 - 是总结&#39;属性似乎具有值&#39;格式化&#39;。因此我尝试了以下命令:
right_table = soup.find("table", summary = "formatting")
但是,此命令无法选择目标表。 相反,以下命令成功:
table = soup.find(summary="Popularity for top 1000")
你可以通过查看html代码来解释为什么第一个命令失败而第二个命令成功了吗?
您的建议将不胜感激。