使用BeautifulSoup获取第n个元素

aad*_*ark 22 python beautifulsoup web-scraping

从一张大桌子我想阅读第5,10,15,20行....使用BeautifulSoup.我该怎么做呢?findNextSibling和递增计数器的方法是什么?

jco*_*ado 48

您还可以使用findAll获取列表中的所有行,然后使用切片语法访问所需的元素:

rows = soup.findAll('tr')[4::5]
Run Code Online (Sandbox Code Playgroud)

  • 为什么切片有效而单个索引不起作用 (2认同)

Son*_*hew 5

select如果您知道要选择的行号,则可以在漂亮的汤中轻松完成。(注意:这是在bs4中)

row = 5
while true
    element = soup.select('tr:nth-of-type('+ row +')')
    if len(element) > 0:
        # element is your desired row element, do what you want with it 
        row += 5
    else:
        break
Run Code Online (Sandbox Code Playgroud)