Python 获取第一个td值
我对Beautifulsoup和Python还不熟悉,我正在试图弄清楚如何获取HTML页面的第一个标签。有人能告诉我我的代码有什么问题吗 HTMLPython 获取第一个td值,python,beautifulsoup,Python,Beautifulsoup,我对Beautifulsoup和Python还不熟悉,我正在试图弄清楚如何获取HTML页面的第一个标签。有人能告诉我我的代码有什么问题吗 HTML 1365米 评级25-0 12h45汤。芬达尔('th',{'width':'10%})[3]应该是: # Get the all matching 'th' that also has 'width' set to '10%', access the first match print('Track '+soup.findAll('th',{'
1365米
评级25-0
12h45
汤。芬达尔('th',{'width':'10%})[3]
应该是:
# Get the all matching 'th' that also has 'width' set to '10%', access the first match
print('Track '+soup.findAll('th',{'width':'10%'})[0])
或者,如果您只想访问第一个匹配项:
# Get the first 'th' with 'width' '10%'
soup.find('th',{'width':'10%'})
print(soup.findAll('th')[0])
这是第一个
计算机从0,1,2,3…开始计数。
如果要打印最后一个
print(soup.findAll('th')[1])
为什么?
soup.findAll('th',{'width':'10%})[3]
不起作用
我们正在寻找宽度为10%
在这个HTML中只有两个
<th width="10%">1365 m</th>
<th width="15%">Rating 25-0</th>
<th width="10%">12h45</th>
你有没有试过像find_all(“th”,class=“width”)这样的东西?这将返回一个列表,您可以从中选择第一个元素作为旁注,为什么要使用findAll
而不是find_all
?尽管文档中说它已被删除,但这种情况还是发生了,但您真的不应该依赖于此。更重要的是,如果你从BS3而不是BS4的教程中学习,你真的很想找到一个更新更好的教程(同样,如果你复制和粘贴BS3代码等等)。要得到最后一个教程,请使用这个soup.find\u all('th',{'width':'10%})[1]
。最后一个是print(soup.findAll('th')[2])
,它是soup.findAll('th',{'width':'10%})
它将找到该th
的所有实例,其属性width
正好是10%
。如果它只找到精确10%
的那些,那么只有两个(索引0,1
)。当心!然后纠正你的答案。当OP示例html中有3个“th”元素时,为什么说打印最后一个是“print(shop.findAll('th')[1])”?[1]将打印第二个->12h45
,[0]将打印1365 m
。只是想确保他可以通过索引提取一个特定的树,而不是遍历整个树。
for i in soup.findAll('th',{'width':'10%'}):
print(i)