如何获取JavaScript变量的内容?

时间:2019-01-24 04:23:15

标签: python python-3.x python-3.6

当我使用beautifulsoup4读取它时,我正在尝试获取网站上的javascript变量的内容。 javascript变量在输出之前会参与计算。

具有以下所有JavaScript的网站是: 查看来源:https://r6.tracker.network/profile/pc/thelonerankwolf/matches

我想检索matchGroup.data.matchesmatchGroup.data.winsmatchGroup.data.kd等。

<section class="trn-scont__content">
<div class="trn-card" v-for="(matchGroup) in filteredMatches">
<div class="trn-card__content">
<h2 class="trn-title trn-title--normal">
{{ showDate(matchGroup.day) }}
</h2>
<div class="trn-defstats-grid">
<div class="trn-defstat">
<div class="trn-defstat__name">Matches</div>
<div class="trn-defstat__value">{{ matchGroup.data.matches }}</div>
</div>
<div class="trn-defstat">
<div class="trn-defstat__name">Wins</div>
<div class="trn-defstat__value">{{ matchGroup.data.wins }}</div>
</div>
<div class="trn-defstat">
<div class="trn-defstat__name">Kills</div>
<div class="trn-defstat__value">{{ matchGroup.data.kills }}</div>
</div>
<div class="trn-defstat">
<div class="trn-defstat__name">K/D</div>
<div class="trn-defstat__value">{{ matchGroup.data.kd }}</div>
</div>
<div class="trn-defstat">
<div class="trn-defstat__name">MMR Change</div>
<div class="trn-defstat__value">{{ matchGroup.data.mmrDelta }}</div>
</div>
<div class="trn-defstat">
<div class="trn-defstat__name">Time Played</div>
<div class="trn-defstat__value" v-seconds-to-hms="matchGroup.data.timePlayed"></div>
</div>
</div>
</div>

我需要帮助来获取变量的值,例如: 匹配数= 6

1 个答案:

答案 0 :(得分:2)

BeautifulSoup是仅解析HTML的python库。它允许您获取HTML元素内的信息(例如,文本,链接,图像),但不会为您运行javascript。如果您需要查看此变量的值,并且以所需的方式对其进行实例化,则可以简单地使用字符串解析器,如this答案所示。如果您需要运行javascript代码来获取变量的值,那么您将需要执行其他操作。您可以使用PhantomJS,但我的建议是使用selenium。 Selenium允许您控制浏览器,例如Chrome,它将为您运行网页上的所有javascript代码。