我正在尝试从数字游戏分发网站 Steam (store.steampowered.com) 上列出的游戏中抓取“游戏标签”数据(与 HTML 标签不同)。据我所知,此信息无法通过 Steam API 获得。
一旦我有了一个页面的原始源数据,我想将它传递给 beautifulsoup 以进行进一步解析,但我有一个问题 - urllib2 似乎没有读取我想要的信息(请求也不起作用),甚至尽管在浏览器中查看时它显然在源页面中。例如,我可能会下载游戏“7 Days to Die”的页面 ( http://store.steampowered.com/app/251570/ )。在 Chrome 中查看浏览器源页面时,我可以在接近结尾处看到以下有关游戏“标签”的相关信息,从第 1615 行开始:
<script type="text/javascript"> $J( function() { InitAppTagModal( 251570, {"tagid":1662,"name":"Survival","count":283,"browseable":true}, {"tagid":1659,"name":"Zombies","count":274,"browseable":true}, {"tagid":1702,"name":"Crafting","count":248,"browseable":true},...
在 initAppTagModal 中,有“生存”、“僵尸”、“制作”等标签,其中包含我想要收集的信息。
但是当我使用 urllib2 获取页面源时:
import urllib2 url = "http://store.steampowered.com/app/224600/" #7 Days to Die page page = urllib2.urlopen(url).read()
我感兴趣的源页面部分没有保存在我的“页面”变量中,而是在第 1555 行以下的所有内容都是空白的,直到结束正文和 html 标记。导致这个(包括回车):
</div><!-- End Footer --> </body> </html>
在空白处是我需要的源代码(以及其他代码)应该在哪里。
我已经在几台安装了不同 python 2.7(Windows 机器和 Mac)的不同计算机上进行了尝试,并且在所有计算机上都得到了相同的结果。
如何获取我正在寻找的数据?
谢谢您的考虑。