找到第一排有漂亮汤的桌子

2024-09-30 07:20:45 发布

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

我正在做课堂作业。我需要写一些东西来返回这个网页上表格的第一行(Barr v.Lee)行:https://www.supremecourt.gov/opinions/slipopinion/19

我看到了一些人可能会认为类似的问题。但他们看起来不像是在回答我同样的问题。大多数其他问题看起来他们已经把桌子放在头上了,而不是把它从网站上拉下来

或者,也许我只是看不到相似之处。我已经刮了大约一个星期了

现在,我正在尝试构建一个循环,它将使用递增计数器遍历所有的div元素,并让计数器返回一个数字,告诉该行的div是什么,这样我就可以钻取它

这就是我到目前为止所做的:

for divs in soup_doc:
div_counter = 0
soup_doc.find_all('div')[div_counter]
div_counter = div_counter + 1
print(div_counter)

但现在,它只返回了1,我知道这是不对的。我该怎么做才能解决这个问题?还是有更好的方法来获取这些信息

我的输出应该是:

63
7/14/20
20A8
Barr v. Lee

PC
591/2

Tags: httpsdiv网页docwwwcounter计数器表格
2条回答

要获取第一行,可以使用CSS选择器.in tr:nth-of-type(2) td

import requests
from bs4 import BeautifulSoup

URL = "https://www.supremecourt.gov/opinions/slipopinion/19"

soup = BeautifulSoup(requests.get(URL).content, "html.parser")

for tag in soup.select('.in tr:nth-of-type(2) td'):
    print(tag.text)

输出:

63
7/14/20
20A8
Barr v. Lee
 
PC
591/2

在您的示例中,div_counter = 0必须位于循环前面,如下所示:

div_counter = 0
for divs in soup_doc:
  soup_doc.find_all('div')[div_counter]
  div_counter = div_counter + 1
  print(div_counter)

您总是得到1,因为您在每次迭代开始时将div_counter设置为for循环内部的0,然后添加1

相关问题 更多 >

    热门问题