我正在学习网页抓取,并且正在以下以下网站中抓取:ivmp servers。我在刮除服务器中的播放器数量时遇到麻烦,有人可以帮助我吗?我将发送到目前为止已完成的代码
saved_model_cli show --dir $export_path --all
答案 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)