我目前正致力于在网页上搜索某些文字。我一直在使用代码:
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}}
查看网页时,会显示为数字。我怎么能弄清楚这个数字是什么?
答案 0 :(得分:2)
这些花括号用于运行时模板。这意味着您正在尝试从使用AngularJS,Vue.js等库的HTML5应用程序中提取数据。基本上,您必须运行JavaScript才能填充这些占位符。
所以这里有两个解决方案:
使用浏览器打开页面。这将运行JavaScript代码,然后您可以查询该字段。您可以使用PhantomJS,SlimerJS或WebDriver在任何所需的浏览器上完成此操作。
JavaScript应用程序本身必须从某个地方获取数据,很可能来自JSON服务。打开您喜欢的浏览器开发人员控制台,打开网络选项卡,然后导航到仪表板。你会看到一些请求。搜索包含所需信息的那个,然后从Python打开而不是获取HTML。
答案 1 :(得分:0)
要查找{{
和}}
中所有项目的列表,请在程序开头添加import re
,然后re.findall(r"\{\{(.*)\}\}", pageChecker)
应该为您提供此类项目一个清单。