2010-08-09 53 views
2

我需要获取页面上包含特定字符串'abc123123'的所有表格行。使用beautifulSoup,试图获取其中包含字符串的所有表格行

该字符串位于TD内部,但如果其中包含'abc123123',则需要整个TR。

我尝试这样做:

userrows = s.findAll('tr', contents = re.compile('abc123123')) 

我不知道,如果内容写入性能。

我的HTML看起来像:

<tr> 
    <td> 
    </td> 
    <td><table>.... abc123123 </table><tr> 
    .. 
</tr> 
<tr> 
.. 
</tr> 
.. 
.. 

回答

4

没有,额外的关键字参数超出规定的那些(name, attrs, recursive, text, limit)均指属性您要搜索的标签

您不能搜索的同时nametext(如果指定text,BS忽略name),所以你需要单独调用,如:

allrows = s.findAll('tr') 
userrows = [t for t in allrows if t.findAll(text=re.compile('abc123123'))] 

这里我使用了一个列表理解因为我假设你想要一个有关标签对象的列表,如findAll本身给你。

+0

或者我可以做,如果没有t.findAll(..)继续感谢,现在试试吧! – Blankman 2010-08-09 01:20:58

+0

确定它不工作,因为我正在寻找的文本实际上是在一个href标签内...... hmm – Blankman 2010-08-09 02:17:45

+0

@Blankman,HTML中没有'href'标签,我想你是指'一个'标签。在这种情况下,当然,在第二条语句中使用't.findall('a',href = re.compile('abc123123'))''。 – 2010-08-09 03:14:35

相关问题