使用Python在{{}}中查找JavaScript填写的信息

时间:2017-05-30 17:43:12

标签: python

我目前正致力于在网页上搜索某些文字。我一直在使用代码:

import urllib
import re

find = "All others"
pageChecker = urllib.urlopen("192.168.1.134/dashboard").read()
if find in pageChecker:
    print "Search found!"
else:
    print "Search not found"

可以找到页面的HTML here

这适用于作为段落填写的任何文字,但问题是我试图找到{{}}填写的信息。例如,有一个名为

{{story.type}}

查看网页时,会显示为数字。我怎么能弄清楚这个数字是什么?

2 个答案:

答案 0 :(得分:2)

这些花括号用于运行时模板。这意味着您正在尝试从使用AngularJS,Vue.js等库的HTML5应用程序中提取数据。基本上,您必须运行JavaScript才能填充这些占位符。

所以这里有两个解决方案:

  1. 使用浏览器打开页面。这将运行JavaScript代码,然后您可以查询该字段。您可以使用PhantomJS,SlimerJS或WebDriver在任何所需的浏览器上完成此操作。

  2. JavaScript应用程序本身必须从某个地方获取数据,很可能来自JSON服务。打开您喜欢的浏览器开发人员控制台,打开网络选项卡,然后导航到仪表板。你会看到一些请求。搜索包含所需信息的那个,然后从Python打开而不是获取HTML。

答案 1 :(得分:0)

要查找{{}}中所有项目的列表,请在程序开头添加import re,然后re.findall(r"\{\{(.*)\}\}", pageChecker)应该为您提供此类项目一个清单。