【问题标题】:Python BeautifulSoup HTML parse class selectPython BeautifulSoup HTML解析类选择
【发布时间】:2022-01-19 07:36:03
【问题描述】:
@bot.event
async def on_message(message):
    msg = message.content
    if message.content.startswith("https:"):
         response = requests.get(f"https://steamid.io/lookup/" f"{msg}")
         soup = BeautifulSoup(response.text, "html.parser")
         print(soup.prettify())

当我运行代码时,网站的代码写成html

  </div>
  <dl class="panel-body dl-horizontal">
   <dt class="key">
    steamID
   </dt>
   <dd class="value short">
    <img alt="copy to clipboard" class="cp" data-clipboard-text="STEAM_0:0:444916529" data-placement="bottom" data-toggle="tooltip" src="https://steamid.io/static/img/copy.png" title="copy to clipboard"/>
    <a href="https://steamid.io/lookup/STEAM_0:0:444916529" id="a" rel="nofollow">
     STEAM_0:0:444916529
    </a>
   </dd>
   <dt class="key">
    steamID3
   </dt>
   <dd class="value short">
    <img alt="copy to clipboard" class="cp" data-clipboard-text="[U:1:889833058]" data-placement="bottom" data-toggle="tooltip" src="https://steamid.io/static/img/copy.png" title="copy to clipboard"/>
    <a href="https://steamid.io/lookup/[U:1:889833058]" rel="nofollow">
     [U:1:889833058]
    </a>
   </dd>
   <dt class="key">
    steamID64
   </dt>
   <dd class="value short">
    <img alt="copy to clipboard" class="cp" data-clipboard-text="76561198850098786" data-placement="bottom" data-toggle="tooltip" src="https://steamid.io/static/img/copy.png" title="copy to clipboard"/>
    <a href="https://steamid.io/lookup/76561198850098786">
     76561198850098786
    </a>
   </dd>
   <dt class="key">
    customURL
   </dt>
   <dd class="value short">
    not set
   </dd>
   <dt class="key">
    profile state
   </dt>

我想从这些代码中解析并选择以下部分

<dt class="key">
    steamID64
   </dt>
   <dd class="value short">
    <img alt="copy to clipboard" class="cp" data-clipboard-text="76561198850098786" data-placement="bottom" data-toggle="tooltip" src="https://steamid.io/static/img/copy.png" title="copy to clipboard"/>
    <a href="https://steamid.io/lookup/76561198850098786">
     76561198850098786
    </a>

我想从这里解析并选择“76561198850098786”的部分,我该怎么做?

【问题讨论】:

  • 请提供完整链接/几个链接用于测试目的。
  • 完整链接如下:https://steamid.io/lookup/https://steamcommunity.com/id/fatiihimm/

标签: python html beautifulsoup html-parsing


【解决方案1】:

您可以使用:-soup-contains 来定位类key 包含术语steamID64 的元素,然后使用相邻兄弟组合器移动到类value 的相邻元素,然后使用子组合器移动到具有所需值的a 标记

soup.select_one('.key:-soup-contains("steamID64") + .value > a').text

【讨论】:

  • 非常感谢您的帮助
猜你喜欢
  • 1970-01-01
  • 2020-02-06
  • 2014-03-06
  • 2011-07-21
  • 2018-07-10
  • 1970-01-01
  • 2011-06-15
  • 1970-01-01
  • 1970-01-01
相关资源
最近更新 更多