我怎样才能选出美丽组的第n个孩子?

2024-04-25 14:38:27 发布

您现在位置:Python中文网/ 问答频道 /正文

在下面的表格中,我将第1-4项刮取并存储在一个名为headings的变量中。在

我还想选择值1-4,并将它们存储在一个名为columns的变量中,是否有每秒都要选择的值。有点像

columns = boxinfo.find_all("td").nthChild(2)

我从中抓取的表结构

^{pr2}$

编码

#Find our information
boxinfo = soup.find("div", {"id": "box1"})
headings = boxinfo.find_all("td", {"class": "label"})
columns = boxinfo.find_all("td").nthChild(2) #This does not work :(

Tags: columns编码informationourallfind结构表格
1条回答
网友
1楼 · 发布于 2024-04-25 14:38:27

如果您试图提取所有的值,那么您可以让BeautifulSoup返回所有项,然后Python可以过滤您想要的值。例如:

from bs4 import BeautifulSoup

html = """<div class="box1">
<table class="table1">
<tr><td class="label">Item1</td><td>Value1</td></tr>
<tr><td class="label">Item2</td><td>Value2</td></tr>
<tr><td class="label">Item3</td><td>Value3</td></tr>
<tr><td class="label">Item4</td><td>Value4</td></tr>
</table>
</div>"""

soup = BeautifulSoup(html, "html.parser")
div = soup.find("div", class_="box1")
values = []

for tr in div.find_all('tr'):
    values.append(tr.find_all("td")[1].text)

print(values)

为您提供一个值列表:

^{pr2}$

或者,如果您想要一个包含所有数据列的列表:

soup = BeautifulSoup(html, "html.parser")
div = soup.find("div", class_="box1")
columns = []

for tr in div.find_all('tr'):
    columns.append([td.text for td in tr.find_all("td")])

columns = list(zip(*columns))    

print(columns)
print(columns[1])  # display the 2nd column

给你:

[('Item1', 'Item2', 'Item3', 'Item4'), ('Value1', 'Value2', 'Value3', 'Value4')]
('Value1', 'Value2', 'Value3', 'Value4')

list(zip(*columns))是一种将行列表转换为列列表的方法。在

相关问题 更多 >