关于网页动态数据获取的知识学习(1)

最近因项目需要,需要抓取网页动态数据,于是恶补了一下相关知识。

 

背景

很多时候,很多人,需要去抓取网页中某些特定内容。

但是,除了之前介绍过的,想要提取某些,静态网页,中的特定内容,比如:

【教程】抓取网并提取网页中所需要的信息 之 Python版

【教程】抓取网并提取网页中所需要的信息 之 C#版

之外,有些人会发现,对于其所要抓取网页中的内容,网页源码中却没有。

所以,此时,就不知道如何实现了。

此处,就来解释一下,如何抓取所谓的动态网页中的特定内容。

 

前提知识

在看本文之前,你需要具备相关的基础知识:

1.抓取网页,模拟登陆等相关的逻辑

如果不熟悉,可参考:

【整理】关于抓取网页,分析网页内容,模拟登陆网站的逻辑/流程和注意事项

 

2.学会用工具,比如IE9的F12,去抓取对应的网页执行的过程

不熟悉的可参考:

【教程】手把手教你如何利用工具(IE9的F12)去分析模拟登陆网站(百度首页)的内部逻辑过程

 

3.对于普通的静态网页,如何提取所需的内容

对此不熟悉的,可以参考:

(1)Python版:

【教程】抓取网并提取网页中所需要的信息 之 Python版

(2)C#版:

【教程】抓取网并提取网页中所需要的信息 之 C#版

 

什么是动态网页

此处所谓的动态网页,是相对于那些静态网页来说的。

而此处所说的静态网页,指的是,对于通过浏览器中查看网页源码时,看到的网页源码中的内容,和网页显示的内容,都是对应的。

换句话说,我想要获得网页上显示的某个内容时,都是可以通过查找网页源码,而找到对应的部分的。

而动态网页,与此相反,想要获得动态网页中的特定的内容,通过直接查看网页源码,是找不到的。

 

动态网页中的动态的内容是从哪里来的

所以,这里就涉及到一个问题了:

所谓的动态网页中的动态内容,到底是从哪里来的?

概括的说,就是通过其他手段生成或者获得的。

目前我所了解到的,有几种:

本地的Javascript脚本所生成的

如果你去用IE9的F12去分析你访问一个url的过程时,你就会发现,其中很可能会涉及到,

在一个网页正常完全显示之前,期间会访问到很多javascript脚本,简称js脚本或js。

这些js脚本,就是实现了很多动态交互的内容的。

其中,对于你所要抓取的一些内容,有时候,就是这些js脚本动态执行,最终计算出来的。

 

通过访问另外一个url地址获得的

很多时候,有些内容,是访问了另外一个url地址后,所返回的数据;

 

如何获得我所要抓取的动态内容

其实,对于如何抓取所需的动态内容,简单一点来说,就一种解决办法:

根据你通过工具分析出来的结果,自己找到对应的数据,去提取出来;

只不过,这个数据,有时候是直接在分析结果过程中直接能提取出来的,有时候可能是js计算出来的。

 

想要抓取数据,是由js脚本生成的

虽然最终的动态内容,有的是js脚本执行所生成的,但是对于你想要抓取的数据:

  • 如果所要抓取内容和js执行逻辑有关系:那就得靠自己去分析,调试js执行的过程,最终找到是如何一点点计算出来最终你需要的值的;
  • 如果所要抓取内容和js执行没关系:即,虽然你想要抓取的内容,是js执行生成的,但是最终还是可以在别的某个js文件或者其他返回的html代码中可以直接获得,那么你自然可以不用关系数据是如何来的,而直接去提取即可,即从特定的字符串中,提取你要的对应的内容。

 

想要抓取数据是访问另一个url所得到的

如果对应的你所要抓取的内容,是需要访问另外一个url地址,所返回的数据,那么很简单,你还需要另外去访问此url,然后获得对应的返回的内容,从中提取你要的数据的。

 

总结

还是那句话,不论你访问的内容,是哪种方式生成的,最终,都还是可以通过工具,去分析出来对应的内容,是如何从无到有生成的。

然后用代码模拟出来此过程,最终提取出你所需要的内容而已;

 

而关于具体的实例演示,参见:

【教程】以抓取网易博客帖子中的最近读者信息为例,手把手教你如何抓取动态网页中的内容

 

 

  • 0
    点赞
  • 0
    收藏
    觉得还不错? 一键收藏
  • 0
    评论
### 回答1: c是英文字母表中的第三个字母。它的发音是"西",也可以用来表示罗马数字中的100。此外,C还可以代表一些其他的含义。 在计算机科学中,C是一种高级编程语言。它是由贝尔实验室的Dennis Ritchie于1972年开发的,是一种通用的、面向过程的编程语言。C语言具有简洁、高效和灵活的特点,因此被广泛应用于系统软件、嵌入式系统和游戏开发等领域。许多其他编程语言,如C++、Java和Python等,都受到了C语言的影响。 此外,C还可以指代一些国家或地区。比如,C是中国的国际域名缩写,常用于代表中国的互联网标识。在国际车辆注册代号中,C代表了柬埔寨。 除了上述含义,C还可以是人名的缩写,例如"Catherine"或"Christina"等。此外,C也是罗马字母中常用的一个字母,用于表示数字或名词的首字母缩写。 总的来说,C是一个多重含义的字母,它不仅仅代表了一个字母表中的符号,还代表了计算机编程语言、国家或地区名称以及人名等。它在不同的领域和语境中都具有重要的意义和应用。 ### 回答2: C是计算机科学中非常重要的一门编程语言。它由贝尔实验室的Dennis Ritchie在1972年开发,并在随后的几十年里得到了广泛应用和发展。C语言具有高效、灵活、可移植和可靠性强的特点,成为了系统级编程和嵌入式系统开发的首选语言。 C语言被广泛运用于操作系统、编译器、网络协议、数据库等底层软件的开发中。它提供了丰富的数据类型、操作符、控制流结构和函数库,可满足各种复杂任务的需求。与其他高级语言相比,C语言更接近硬件的底层操作,对内存和性能的控制更为精确。 C语言的语法简洁明了,易于学习和理解。它的语言结构直接反映了底层机器指令的执行过程,使得程序员能够更好地控制计算机的行为。此外,C语言具有强大的模块化技术,可以将程序划分为多个独立的模块,提高了代码的重用性和可维护性。 虽然C语言已经有几十年的历史,但在当前的计算机科学领域仍然占据重要地位。很多计算机科学的基础知识和算法都是用C语言来实现的。同时,C语言也为其他高级编程语言的发展做出了巨大贡献,比如C++和Java等语言的设计和演变都有C语言的影响。 在学习C语言时,不仅需要熟悉其语法和特性,还需要了解一些底层的原理和概念。虽然C语言相对于其他编程语言来说更加底层,但它是非常有价值的一门编程语言,对于理解计算机科学的基本原理和实践具有重要意义。 ### 回答3: 不好意思,但是我需要更多的背景信息才能回答你的问题。请提供更多的细节或者明确具体的问题。

“相关推荐”对你有帮助么?

  • 非常没帮助
  • 没帮助
  • 一般
  • 有帮助
  • 非常有帮助
提交
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值