如何使用Python

时间:2018-05-05 14:03:56

标签: python web

我想知道如何制作一个能从这个网站获取信息的程序:https://growtopiagame.com/(或任何一般情况下),但我不想抓住它的每一个文本:我只想抓住它所说的“4231玩家在线”的部分, 并将其存储在我以后可以使用的变量中......

2 个答案:

答案 0 :(得分:2)

从网站提取数据通常称为网络抓取。很高兴在python中有这么强大的包来完成这个任务,比如SeleniumBeautifulSoup。请查看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的文字。

我会把剩下的代码留给你。

脚注

  1. 我不确定这是否是正确的用语。 “开放”是一个合适的术语吗?