我在运行python2.7.8的MacOSX上使用BeautifulSoup4。我很难从下面的html代码中提取信息
<tbody tabindex="0" class="yui-dt-data" id="yui_3_5_0_1_1408418470185_1650">
<tr id="yui-rec0" class="yui-dt-first yui-dt-even">
<td headers="yui-dt0-th-rank" class="rank yui-dt0-col-rank"></td>
</tr>
<tr id="yui-rec1" class="yui-dt-odd">...</tr>
<tr id="yui-rec2" class="yui-dt-even">...</tr>
</tbody>
我似乎无法获取表或其任何内容,因为BS和/或python似乎无法识别带有连字符的值。像平常一样
^{pr2}$或者
Row2 = Table.find('tr',{'id':'yui-rec2'})
只返回一个空对象(不是无,只是空的)。我对BS4或Python并不陌生,我以前也从这个站点提取过信息,但是现在的类名与我以前做的时候不同了。现在所有东西都有连字符。有没有办法让Python识别连字符或解决方法?在
我需要使我的代码是通用的,这样我就可以在许多具有相同类名的页面上运行它。不幸的是,<tbody>
中的id
属性对该特定表是唯一的,因此我不能使用它来跨网页标识此表。在
任何帮助都将不胜感激。提前谢谢。在
对于那些试图找到解决方案来查找属性中带有连字符的标记的人,文档中有一个答案 https://www.crummy.com/software/BeautifulSoup/bs4/doc/#the-keyword-arguments
这段代码会导致错误
你应该这么做
^{pr2}$只需使用
select
。英国标准4 4.7.1以下代码:
输出:
^{pr2}$尽管您提供的html本身不是有效的,但是BS似乎在猜测它应该如何,因为
soup.prettify()
会产生虽然我猜那些tr不应该嵌套。在
你能试着运行这些代码看看输出是什么吗?在
相关问题 更多 >
编程相关推荐