【问题标题】:Print certain value inside <td>在 <td> 中打印某个值
【发布时间】:2019-03-07 22:09:06
【问题描述】:

我正在尝试打印某个值,它位于 &lt;td&gt; 内。 我从网页获得的值如下所示:

  <b>General Information</b>
  <table width="400">
      <tr>
          <td>Hostname</td>
          <td>jade.nephrite.ro - Quest special | Roata Norocului</td>
      </tr>
      <tr>
          <td>Gamemode</td>
          <td>nephrite, 04 Mar 2019 14:52:55</td>
      </tr>
      <tr>
          <td>Players</td>
          <td>330 / 1000</td>
      </tr>
      <tr>
          <td>Map</td>
          <td>RO/EN</td>
      </tr>
      <tr>
          <td>Weather</td>
          <td>5</td>
      </tr>
      <tr>
          <td>Time</td>
          <td>23:00</td>
      </tr>
      <tr>
          <td>Version</td>
          <td>0.3.7-R2</td>
      </tr>
      <tr>
          <td>Password</td>
          <td>No</td>
      </tr>
  </table>

  <br />
  <b>Online Players</b>
  <br /><i>None</i>

我正在尝试仅打印位于&lt;td&gt;Players&lt;/td&gt; 下的&lt;td&gt;330 / 1000&lt;/td&gt;。我尝试了很多可以在谷歌上找到的方法,但遗憾的是没有一个对我有用,因为我在 python 方面没有太多经验,也无法编辑代码以便适用于我的表格。

当前代码:

import requests

url = "http://crowned.ro/api/test.php"
headers = {
    'User-Agent': 'Mozilla/5.0',
}
response = requests.get(url, headers=headers)
infos = response.text
#infos = response.json()
print(infos.find("Players"))
#print(infos['[Players]'])

【问题讨论】:

  • 显示你当前的代码
  • @MarcinOrlowski ,当前代码已添加。
  • 您需要先安装并阅读以下内容:pypi.org/project/beautifulsoup4
  • 那么一旦你把它搞定了...类似:soup.find('td', text='Players').find_next_sibling('td').text 应该给你:'330 / 1000'

标签: html python-3.x parsing


【解决方案1】:

感谢@jon-clements,我看透了 BeautifulSoup4 并学会了一点如何使用它。 解决办法是:

soup = BeautifulSoup(infos, 'html.parser')
print(soup.find('td', text='Players').find_next_sibling('td').text)

所以现在一切看起来像这样:

import requests
from bs4 import BeautifulSoup

url = "http://crowned.ro/api/test.php?sv=jade.nephrite.ro"
headers = {
    'User-Agent': 'Mozilla/5.0',
}
response = requests.get(url, headers=headers)
infos = response.text
soup = BeautifulSoup(infos, 'html.parser')
print(soup.find('td', text='Players').find_next_sibling('td').text)

【讨论】:

  • 很高兴它有帮助...非常感谢您花时间发布解决方案的自我答案。
猜你喜欢
  • 2012-04-17
  • 1970-01-01
  • 1970-01-01
  • 2021-10-07
  • 1970-01-01
  • 2014-05-07
  • 2017-08-08
  • 1970-01-01
  • 1970-01-01
相关资源
最近更新 更多