如何在网页抓取中抓取“ TD”

时间:2020-03-23 00:34:15

标签: python

我正在学习网页抓取,并且正在以下以下网站中抓取:ivmp servers。我在刮除服务器中的播放器数量时遇到麻烦,有人可以帮助我吗?我将发送到目前为止已完成的代码

saved_model_cli show --dir $export_path --all

2 个答案:

答案 0 :(得分:1)

查看您提供的页面,我可以假定您要从中提取信息的表是具有服务器名称和ip地址的表。 此页面上实际上有4个“表格”元素。

幸运的是,此表具有ID(服务器列表)。右键单击>在Chrome上检查

,即可轻松找到它
players = soup.select_one('table#serverlist')

现在您想获取td。 您可以使用:

for td in players.select("td"):
    print(td)

或者您可以选择一个您感兴趣的人:

players.select("td.hostname")

例如。

希望这会有所帮助。

答案 1 :(得分:0)

看看页面的结构,有几个带有“ players”类的表格单元格(td),看起来其中两个是用于对表格进行排序的,所以我们假设您不想要那些

为了提取您想要的一个,我首先要查询所有带有“ players”类的td元素,然后循环遍历它们,仅将我们想要的元素添加到数组中。

类似这样的东西:

import requests
from bs4 import BeautifulSoup

source = requests.get('https://www.game-state.com/index.php?game=ivmp').text
soup = BeautifulSoup(source, 'html.parser')

players = soup.find_all('td', class_='players')

summary = []

for cell in players:
    # Exclude the cells which are for sorting
    if cell.get_text() != 'Players':
        summary.append(cell.get_text())

print(summary)