无法使用BeautifulGroup刮取HTML表

2024-09-30 18:23:30 发布

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

我尝试使用Python、BeautifulSoup、Requests和Selenium从web页面的表中获取数据来登录站点。 这是我要获取数据的表格。。。在

<div class="sastrupp-class"> <table> <tbody> <tr> <td class="key">Thing I dont want 1</td> <td class="value money">$1.23</td> <td class="key">Thing I dont want 2</td> <td class="value">99,999,999</td> <td class="key">Target</td> <td class="money value">$1.23</td> <td class="key">Thing I dont want 3</td> <td class="money value">$1.23</td> <td class="key">Thing I dont want 4</td> <td class="value percentage">1.23%</td> <td class="key">Thing I dont want 5</td> <td class="money value">$1.23</td> </tr> </tbody> </table> </div>

我可以找到“sastrupp类”很好,但我不知道如何浏览它,找到我想要的那部分。 我想我可以像这样找我要找的班级。。。 ^{pr2}$

但这没有任何回报。在

需要注意的重要事项:

  1. &表中的lt;td>;与我想要的类名相同。如果我不能把它们分开,我可以接受,尽管我宁愿把我想要的那一个还给我。在

2.还有其他带有^{cl3}的<;div>;s$

  1. 我显然是个初学者,所以如果我能帮你的话让我知道。 如有任何帮助/建议,我们将不胜感激。在

Tags: keyltgtdivvaluetabletrclass
1条回答
网友
1楼 · 发布于 2024-09-30 18:23:30

1)首先,要获得“目标”,你需要找到所有,而不是find。然后,考虑到您确切地知道您的目标将在哪个位置(在您给出的示例中,它是index=2),解决方案可以这样实现:

from bs4 import BeautifulSoup

html = """(YOUR HTML)"""

soup = BeautifulSoup(html, 'html.parser')
table = soup.find('div', {'class': 'sastrupp-class'})
all_keys = table.find_all('td', {'class': 'key'})
my_key = all_keys[2]

print my_key.text  # prints 'Target'

(二)

There are other < div>s with class="sastrupp-class" on the site

同样,您需要使用find\u all选择所需的索引,然后选择正确的索引。在

HTML示例:

^{pr2}$

要提取目标,只需:

all_divs = soup.find_all('div', {'class':'sastrupp-class'})
target = all_divs[3]  # assuming you know exactly which index to look for

相关问题 更多 >