web使用python抓取动态内容

web使用python抓取动态内容,第1张

概述我想用 Python来抓取网页上的“你在找这些作者:”框的内容,如下所示: http://academic.research.microsoft.com/Search?query=lander 不幸的是,该框的内容由JavaScript动态加载.通常在这种情况下,我可以阅读Javascript来弄清楚发生了什么,或者我可以使用像Firebug这样的浏览器扩展来确定动态内容的来源.这次没有这样的运气 我想用 Python来抓取网页上的“你在找这些作者:”框的内容,如下所示: http://academic.research.microsoft.com/Search?query=lander

不幸的是,该框的内容由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抓取动态内容所遇到的程序开发问题。

如果觉得内存溢出网站内容还不错,欢迎将内存溢出网站推荐给程序员好友。

欢迎分享,转载请注明来源:内存溢出

原文地址: http://outofmemory.cn/web/1048479.html

(0)
打赏 微信扫一扫 微信扫一扫 支付宝扫一扫 支付宝扫一扫
上一篇 2022-05-25
下一篇 2022-05-25

发表评论

登录后才能评论

评论列表(0条)

保存