当前位置: 首页 > 知识库问答 >
问题:

用python抓取动态内容

孔光赫
2023-03-14

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

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

有什么技巧可以使这项任务变得容易吗?

共有3个答案

郭业
2023-03-14

为了抓取动态内容,你不需要一个简单的刮刀,而是一个成熟的无头浏览器。

达马尼亚斯/无头浏览器:(几乎)所有现存无头网络浏览器的列表是我见过的最完整的列表;它列出了每种语言的绑定。

(请注意,超过几个列出的项目被放弃了!)

洪开济
2023-03-14

这里早些时候也提出了一个非常类似的问题。引用的是selenium,它最初是web应用程序的测试环境。

我通常使用Chrome的开发者模式,IMHO已经提供了比Firefox更多的细节。

赵宏达
2023-03-14

您可以使用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...

你可以通过Python运行JavaScript在现实生活中的DOM使用ghost.py.

这真的很酷:

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');")
 类似资料:
  • 问题内容: 我想使用Python在这样的网页上抓取“正在寻找这些作者:”框中的内容:http : //academic.research.microsoft.com/Search?query=lander 不幸的是,盒子的内容是由JavaScript动态加载的。通常在这种情况下,我可以阅读Javascript来了解发生了什么,或者可以使用Firebug之类的浏览器扩展来了解动态内容的来源。这次没有

  • 问题内容: 免责声明:我在StackOverflow上看到过许多其他类似的帖子,并尝试以相同的方式进行操作,但是它们似乎在此网站上不起作用。 我正在使用Python-Scrapy从koovs.com获取数据。 但是,我无法获得动态生成的产品尺寸。具体来说,如果有人可以引导我从此链接的下拉菜单中获取“不可用”尺寸标签,我将不胜感激。 我可以静态获取尺寸列表,但这样做只能得到尺寸列表,但不能获得其中的

  • 本文向大家介绍python+selenium+PhantomJS抓取网页动态加载内容,包括了python+selenium+PhantomJS抓取网页动态加载内容的使用技巧和注意事项,需要的朋友参考一下 环境搭建 准备工具:pyton3.5,selenium,phantomjs 我的电脑里面已经装好了python3.5 安装Selenium pip3 install selenium 安装Phan

  • 问题内容: 我需要从此网站Link中抓取新闻公告。公告似乎是动态生成的。它们不会出现在源代码中。我通常使用机械化,但是我认为它不会起作用。我该怎么办?我可以使用python或perl。 问题答案: 礼貌的选择是询问网站所有者是否具有允许您访问其新闻报道的API。 不太礼貌的选择是跟踪页面加载时发生的HTTP事务,并确定哪一个是AJAX调用,该调用会提取数据。 看起来就是这个。但是看起来它可能包含会

  • 问题内容: 在网站上,有在标顶部的几个环节,,,和。如果按下以数字标记的链接,它将动态地将一些数据加载到content中。如果被按下,它会用标签页,,,和第4页中的数据显示。 我想从按下的所有链接的内容中抓取数据(我不知道有多少,一次只显示3个,然后) 请举一个例子。例如,考虑网站www.cnet.com。 请指导我下载使用selenium的一系列页面,并自行解析它们以处理漂亮的汤。 问题答案:

  • 我尝试用BS4 python来抓取动态网站: https://www.nadlan.gov.il/?search=תל אביב יפו 我试过: 我有两个问题: > 当我打开站点时,数据加载需要几秒钟: 硒如何解决这些问题?