小编典典

使用python Web抓取动态内容

python

我想使用Python在这样的网页上抓取“正在寻找这些作者:”框中的内容:http
:
//academic.research.microsoft.com/Search?query=lander

不幸的是,盒子的内容是由JavaScript动态加载的。通常在这种情况下,我可以阅读Javascript来了解发生了什么,或者可以使用Firebug之类的浏览器扩展来了解动态内容的来源。这次没有这样的运气了……Javascript非常复杂,Firebug并没有提供很多有关如何获取内容的线索。

是否有任何技巧可以使此任务轻松完成?


阅读 191

收藏
2020-12-20

共1个答案

小编典典

您可以使用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 Ghost
ghost = Ghost()
page, resources = ghost.open('http://academic.research.microsoft.com/Search?query=lander')
result, resources = ghost.evaluate(
    "document.getElementsByClassName('inline-text-org');")
2020-12-20