不幸的是,该框的内容由JavaScript动态加载.通常在这种情况下,我可以阅读JavaScript来弄清楚发生了什么,或者我可以使用像FireBUG这样的浏览器扩展来确定动态内容的来源.这次没有这样的运气…… JavaScript非常复杂,FireBUG没有提供很多关于如何获取内容的线索.
有什么技巧可以让这项任务变得简单吗?
解决方法 您可以使用ghost.py直接与页面上的JavaScript进行交互,而不是尝试对其进行逆向工程.如果您在Chrome控制台中运行以下查询,您将看到它返回您想要的所有内容.
document.getElementsByClassname('inline-text-org');
返回
[<div class="inline-text-org" Title="University of Manchester">University of Manchester</div>,<div class="inline-text-org" Title="University of California Irvine">University of California ...</div> etc...
您可以使用ghost.py在真实DOM中通过python运行JavaScript.
这真的很酷:
from ghost import Ghostghost = Ghost()page,resources = ghost.open('http://academic.research.microsoft.com/Search?query=lander')result,resources = ghost.evaluate( "document.getElementsByClassname('inline-text-org');")总结
以上是内存溢出为你收集整理的web使用python抓取动态内容全部内容,希望文章能够帮你解决web使用python抓取动态内容所遇到的程序开发问题。
如果觉得内存溢出网站内容还不错,欢迎将内存溢出网站推荐给程序员好友。
欢迎分享,转载请注明来源:内存溢出
评论列表(0条)