Python 使用th文本导航表
我有下表:Python 使用th文本导航表,python,beautifulsoup,Python,Beautifulsoup,我有下表: <table class="information"> <tr> .... lots of rows with <th> and <td></tr> <tr> <th>Nationality</th> <td><a href="..">Stackoverflowian</a></td> </tr> <
<table class="information">
<tr> .... lots of rows with <th> and <td></tr>
<tr>
<th>Nationality</th>
<td><a href="..">Stackoverflowian</a></td>
</tr>
</table>
.... 有很多行和
国籍
我想在td标签内找到th下带有“国籍”的文本。我应该如何导航到那里?我正在使用Beautifulsoup和Python
补充说,上面有很多th和td标记,为了强调仅找到第一个th是不够的,请找到
th
标记,然后获取其:
我们需要执行两次下一个同级,因为第一个同级将给出换行符。找到
th
标记,然后获取其:
我们需要做两次下一个同级,因为第一个会给出换行符。我修改了这个答案,因为你给出了一个你试图解析的特定HTML页面
r = requests.get("http://https://en.wikipedia.org/wiki/Usain_Bolt")
# test that we loaded the page successfully!
soup = BeautifulSoup(r.text, "html.parser")
thTag = soup.find('th', text='Nationality'):
tdTag = thTag.next_sibling.next_sibling
print(tdTag.text)
>>>'Jamaican'
我已经修改了这个答案,因为您给出了一个试图解析的特定HTML页面
r = requests.get("http://https://en.wikipedia.org/wiki/Usain_Bolt")
# test that we loaded the page successfully!
soup = BeautifulSoup(r.text, "html.parser")
thTag = soup.find('th', text='Nationality'):
tdTag = thTag.next_sibling.next_sibling
print(tdTag.text)
>>>'Jamaican'
如果你在寻找它自己,那么考虑<代码> Ford-PARTRONE()/<代码>
< P>如果你在查看它自己,那么考虑<代码> Fund PARTRONE()/<代码>你应该在把它作为一个解决方案发布之前测试你的答案。虽然您的方法是正确的,但是发布错误的代码只会混淆OP和未来的访问者。这与以下代码不起作用:对于soup中的元素(text='national'):print(element.next_sibling())TypeError:“NoneType”对象不可调用定义soup时,需要为其提供实际的HTML代码进行解析。在上面的示例中,您为它提供了整个请求对象r。只要传递r.text就行了。正如你给出了一个你试图扫描的页面的特定HTML示例,我可以给你一个具体的答案。我已经修改了我以前的答案。你应该先测试一下你的答案,然后再将其作为解决方案发布。虽然您的方法是正确的,但是发布错误的代码只会混淆OP和未来的访问者。这与以下代码不起作用:对于soup中的元素(text='national'):print(element.next_sibling())TypeError:“NoneType”对象不可调用定义soup时,需要为其提供实际的HTML代码进行解析。在上面的示例中,您为它提供了整个请求对象r。只要传递r.text就行了。正如你给出了一个你试图扫描的页面的特定HTML示例,我可以给你一个具体的答案。我已经回答了我之前的问题。如果我想要的表头不是html中的第一个表头,这不是失败了吗?@bjornasm。如果您有多个
th
标记,那么您可以找到它们并遍历它们。我将编辑我的回答如果我想要的表格标题不是html中的第一个表格标题,这不会失败吗?@bjornasm。如果您有多个th
标记,那么您可以找到它们并遍历它们。我将编辑我的答案