如何获取INSPECT ELEMENT中显示的网站数据而不是查看页面源?

时间:2017-03-13 06:46:01

标签: javascript python html python-2.7 dom

我想获取网站的INSPECT ELEMENT数据。让我们说Truecaller。这样我就可以获得我搜索过的手机号码的人的姓名。 但每当我制作一个python脚本时,它都会给我一个不包含所需信息的PAGE SOURCE。

请帮助我。我是初学者,请原谅我在问题中的任何错误。

3 个答案:

答案 0 :(得分:2)

TL; DR:使用Selenium(和PhantomJS

视图页面源代码将为您提供在页面请求时加载的html(这很可能是您在从python发出请求时获得的。

由于现在很多页面加载了东西并在加载初始html后修改了DOM,因此只需查看初始响应就不会获得所需的大部分信息。 要获取检查元素信息,您需要某种Web浏览器才能实际转到该页面,等待您要加载的信息,然后使用它。但是你仍然希望在python脚本中执行此操作。

输入selenium,这是一个浏览器自动化工具(主要用于测试网页)。您可以创建一个python脚本来打开浏览器页面并执行您为其编写的任何代码(甚至等待一段时间并搜索后加载DOM元素!)。你的脚本仍然会打开一个浏览器(我猜这有点奇怪)。

输入PhantomJS,这是另一个可以使用无头浏览器进行所有Web测试的库,而无需依赖实际的浏览器UI。

只使用硒可以达到你的目标,但是使用phantomjs你可以用更清洁的方式做到这一点!祝你好运。

答案 1 :(得分:0)

检查元素和查看页面源不一样。

查看源会显示该页面的原始HTML源代码。当您从浏览器查看源时,您将获得服务器提供的HTML,而不是在javascript执行此操作之后。

检查器会显示浏览器解释的DOM。这包括例如javascript所做的更改,这些更改无法在HTML源代码中看到。

答案 2 :(得分:0)

您在元素检查器中看到的不再是源代码。 你看到一个javascript操纵版本。

而不是试图自己执行所有脚本,这可能导致多个问题,如跨源安全性等,

在网络标签中搜索实际搜索请求及其参数。 然后从那里请求数据,这就是诀窍。

此外,您似乎需要登录才能搜索您提供的网址,因此您最终需要调整Cookie /会话/标题和内容,就像浏览器的请求一样。

所以我想说的是,如果不在源中,请更好地分析您查找的数据的来源