运行javascripts
后,我能得到浏览器中看到的http
页面吗?无需提交数据并按下按钮。IMHO这是一项标准任务,我在哪里可以看到运行所有脚本并获得结果的示例?
通过:
u = urllib.request.urlopen('https://www.*')
data = u.read()
如果我在浏览器中选择查看源代码,我会看到页面。然而,当我检查页面上的元素时,我会看到代码是如何扩展的,例如:
<div class="js-events-container"></div>
扩展到:
<div class="js-events-container"> <table class="zebra noBorderTbl" style="width: 100%;">
<tbody><tr>
<th>1</th>
<th>2</th>
<th>3</th>
</tr>
...
</tr>
</tbody></table>
</div>
我在类名中看到了js,它可能是javascript,我认为没有办法用urllib获得完整的页面。您需要在javascript启动后拉取站点。你需要硒或phantomjs来完成这项工作。
您还可以查看这个特定的库dryscape。根据文档,它支持javascript。
我现在使用selenium
加载页面,然后获得page_source
。不管名称如何,page_source
给出的不是页面源,而是java脚本运行后的页面结果。