Python beautiful soup4 find\u all returns“[]”

2024-09-26 22:55:26 发布

您现在位置:Python中文网/ 问答频道 /正文

我正在使用python BS4来浏览https://skinup.gg网站。我试图得到乘数类,按顺序,从一个网站。你知道吗

我试着从div历史课上获取所有的数据来搜集信息。然而,它只是返回[],我对如何获得乘数感到困惑。你知道吗

我想知道这是否是因为div标签类值不断变化。这就引出了我的第二个问题:它们如何在html标记中具有动态值?是通过Javascript完成的吗?你知道吗

原谅我的语法。你知道吗

这是我的密码:

import urllib.request
import requests
from bs4 import BeautifulSoup
import urllib

page = requests.g et("https://skinup.gg/"
soup = BeautifulSoup(page.content, "html.parser")


print(soup.find_all('div', attrs={'class': 'win'}))

相关网站代码:

<div class="history"><div class="win" style="">
  <time class="date">23:05</time>
  <span class="multiplier">2.19</span>
</div><div class="win" style="">
  <time class="date">23:04</time>
  <span class="multiplier">2.62</span>
</div><div class="lose" style="">
  <time class="date">23:04</time>
  <span class="multiplier">1.75</span>
</div><div class="lose" style="">
  <time class="date">23:04</time>
  <span class="multiplier">1.00</span>
</div><div class="lose" style="">
  <time class="date">23:04</time>
  <span class="multiplier">1.21</span>
</div><div style="">
  <time class="date">23:03</time>
  <span class="multiplier">1.82</span>
</div><div class="lose" style="">
  <time class="date">23:03</time>
  <span class="multiplier">1.00</span>
</div><div class="win" style="">
  <time class="date">23:03</time>
  <span class="multiplier">2.91</span>
</div><div class="lose" style="">
  <time class="date">23:02</time>
  <span class="multiplier">1.01</span>
</div><div class="win" style="">
  <time class="date">23:02</time>
  <span class="multiplier">1184.44</span>
</div><div class="win" style="">
  <time class="date">23:01</time>
  <span class="multiplier">36.81</span>
</div><div class="lose" style="">
  <time class="date">22:59</time>
  <span class="multiplier">1.38</span>
</div><div class="win" style="">
  <time class="date">22:59</time>
  <span class="multiplier">2.42</span>
</div><div class="win" style="">
  <time class="date">22:59</time>
  <span class="multiplier">8.00</span>
</div><div class="win" style="">
  <time class="date">22:58</time>
  <span class="multiplier">3.42</span>
</div><div class="win" style="">
  <time class="date">22:57</time>
  <span class="multiplier">2.04</span>
</div><div class="lose" style="">
  <time class="date">22:57</time>
  <span class="multiplier">1.17</span>
</div><div class="lose" style="">
  <time class="date">22:57</time>
  <span class="multiplier">1.24</span>
</div><div class="lose" style="">
  <time class="date">22:57</time>
  <span class="multiplier">1.11</span>
</div><div class="lose" style="">
  <time class="date">22:56</time>
  <span class="multiplier">1.53</span>
</div>

                </div>

Tags: httpsimportdivdatetime网站stylewin
3条回答

首先,这会引发语法错误:

page = requests.g et("https://skinup.gg/"

更改为:

page = requests.get("https://skinup.gg/")

我建议用lxml代替html.parser语法分析器,它更快更轻。你知道吗

现在,回答你的问题

具有win作为class属性的div段位于具有history class属性的div段下。因此首先搜索历史,然后在获得的列表中搜索win。你知道吗

但是,当我运行您的脚本并交叉检查您链接的站点的页面源代码时,没有具有win class属性的div段。你知道吗

你能告诉我,你是从哪里得到相关网站代码的吗?你知道吗

正如t.m.adam提到的,urllib或请求无法获取动态页面源。
但是当你看到用chrome开发工具链接的页面时,你可以看到div win类是在舍入乘数>;2。
这些由使用wss协议的“socketcluster/”接收。
所以您应该使用python wss模块来实现您的目标。你知道吗

对于有问题的网站,您需要使用selenium来获取所需的数据。你知道吗

相关问题 更多 >

    热门问题