标识那些在所选表的表行中没有类属性的<tr>

时间:2019-09-16 10:56:45

标签: python python-3.x beautifulsoup

以下是标签:

<tr id="tr_m_1570:240HJY" class="flavored_option_display_hide"><td width="1" height="1" valign="Top"><img src="https://si.cdn.dell.com/images/global/configurator/general/spacer.gif" border="0" height="1" width="1"></td><td width="100%"><table name="t_m_1570:240HJY" id="t_m_1570:240HJY" cellpadding="0" cellspacing="0" border="0" width="100%"><tbody><tr><td width="9" height="1" valign="Top"><img src="https://si.cdn.dell.com/images/global/configurator/general/spacer.gif" border="0" height="1" width="9"></td><td valign="top"><a name="m_1570:240HJY" id="m_1570:240HJY"></a><input type="checkbox" onmousedown="validateMouseDown(event);" onkeydown="validateKeyDown(event);" onclick="tealeafAddEvent(this, 'custom_checkbox_click','m_1570_240HJY'); checkOnClick(event), enableQtyText('m_1570','240HJY','true');" id="m_1570" name="m_1570" displayname="m_1570_240HJY" value="240HJY"></td><td width="100%" style="line-break:strict;word-break:keep-all;line-height:2"><div><span id="sq_m_1570_240HJY" style="display:inline" ;=""><input type="text" id="q_m_1570:240HJY" name="q_m_1570:240HJY" size="1" class="qty_text_box_set" onkeyup="showQtyUpdateButton('sqb_m_1570_240HJY')" value="1" onfocus="javascript:enableQtyText('m_1570','240HJY','false');"></span><span id="sqb_m_1570_240HJY" style="display:none" ;=""><input type="button" id="qb_m_1570_240HJY" name="qb_m_1570_240HJY" size="2" style="font-size:10px" value="Update" onclick="updateOptionQty('q_m_1570:240HJY','m_1570','240HJY')"></span><font size="1">&nbsp;240GB Solid State Drive SATA Read Intensive 6Gbps 512 2.5in Hot-plug Boot 3.5 HYB CARR&nbsp;<span id="op_m_1570:240HJY" name="op_m_1570:240HJY">[£318.00&nbsp;or&nbsp;£11/month<sup>-1</sup>]</span></font></div></td></tr></tbody></table><!--option1 close--></td></tr>


<tr id="tr_m_1570:1025516"><td width="1" height="1" valign="Top"><img src="https://si.cdn.dell.com/images/global/configurator/general/spacer.gif" border="0" height="1" width="1"></td><td width="100%"><table name="t_m_1570:1025516" id="t_m_1570:1025516" cellpadding="0" cellspacing="0" border="0" width="100%"><tbody><tr><td width="9" height="1" valign="Top"><img src="https://si.cdn.dell.com/images/global/configurator/general/spacer.gif" border="0" height="1" width="9"></td><td valign="top"><a name="m_1570:1025516" id="m_1570:1025516"></a><input type="checkbox" onmousedown="validateMouseDown(event);" onkeydown="validateKeyDown(event);" onclick="tealeafAddEvent(this, 'custom_checkbox_click','m_1570_1025516'); checkOnClick(event), enableQtyText('m_1570','1025516','true');" id="m_1570" name="m_1570" displayname="m_1570_1025516" value="1025516"></td><td width="100%" style="line-break:strict;word-break:keep-all;line-height:2"><div><span id="sq_m_1570_1025516" style="display:inline" ;=""><input type="text" id="q_m_1570:1025516" name="q_m_1570:1025516" size="1" class="qty_text_box_edit" onkeyup="showQtyUpdateButton('sqb_m_1570_1025516')" value="1" onfocus="javascript:enableQtyText('m_1570','1025516','false');"></span><span id="sqb_m_1570_1025516" style="display:none" ;=""><input type="button" id="qb_m_1570_1025516" name="qb_m_1570_1025516" size="2" style="font-size:10px" value="Update" onclick="updateOptionQty('q_m_1570:1025516','m_1570','1025516')"></span><font size="1">&nbsp;1TB 7.2K RPM SATA 6Gbps 3.5in Cabled Hard Drive FGA&nbsp;<span id="op_m_1570:1025516" name="op_m_1570:1025516">[£350.00]</span></font></div></td></tr></tbody></table><!--option1 close--></td></tr>

我只想在变量中获得第二个标签。

soup1 = soup1.find('table', id="module_options_1570")    
soup2 = soup1.find('table')    
rows = soup2.find_all('tr',class_!= 'flavored_option_display_hide')>

2 个答案:

答案 0 :(得分:0)

您可以执行soup2.find_all('tr', attrs={'class': None})soup2.find_all('tr', class_=None)

答案 1 :(得分:0)

貌似Beautifulsoup不支持!=运算符(每天学习一些新知识……)。如果您的目标元素根本没有类,则应使用上面的Praveenkumar答案。

如果目标元素确实有另一个类,则必须使用

rows = soup.find_all('tr', class_=lambda x: x !=  'flavored_option_display_hide')