我想知道如何制作一个能从这个网站获取信息的程序:https://growtopiagame.com/(或任何一般情况下),但我不想抓住它的每一个文本:我只想抓住它所说的“4231玩家在线”的部分, 并将其存储在我以后可以使用的变量中......
答案 0 :(得分:2)
从网站提取数据通常称为网络抓取。很高兴在python中有这么强大的包来完成这个任务,比如Selenium
和BeautifulSoup
。请查看this以了解有关如何进行网页抓取的详细信息。
答案 1 :(得分:2)
使用网络抓取库。对于Python,我们可以使用BeautifulSoup。
您要做的是首先获取整个页面并解析您获得的HTML。你会做类似的事情:
<div class="parent" id="1" onclick="saveID()">
<div class="child">
Hey there!
</div>
</div>
<div id="display"></div>
之后,您将继续使用BeautifulSoup。但是我们如何获得在线玩家数量呢?
简单!我们只需要先检查网站的HTML代码。从网站上,在要解析的文本上打开 1 “Inspect Element”。在您的情况下,我们将获得以下HTML代码段:
# I'm skipping the necessary packages you need to import.
webpage = urllib2.urlopen('https://growtopiagame.com/')
soup = BeautifulSoup(webpage,'html.parser')
就问题而言,我遗漏了不必要的HTML代码。
从我们得到的片段中,请注意在线播放器计数(截至当前写作时为40961)位于<!--There are more code lines above. -->
<div class="server-status">
Server is up |
<span class="counter">40961</span> Players online!
</div>
<!--There are more codes below. -->
类的<span>
元素内。
从那里,我们现在可以通过指示BeautifulSoup获取"counter"
的文本来提取在线玩家数量。为了更准确,我们可以获得span.counter
的文字。
我会把剩下的代码留给你。
脚注