如何实现所谓的动态网页中所需要的信息之Python版和【教程】
优采云 发布时间: 2021-07-14 20:36如何实现所谓的动态网页中所需要的信息之Python版和【教程】
背景
很多时候,很多人需要抓取网页上的某些特定内容。
不过,除了前面的介绍,我还想从一些静态网页中提取具体的内容,比如:
【教程】python版爬取网页并提取网页中需要的信息
和
【教程】C#版抓取网页并提取网页中需要的信息
除了
,有些人会发现自己要爬取的网页的内容不在网页的源代码中。
所以,这个时候,我不知道如何实现它。
在这里,让我们解释一下如何抓取所谓的动态网页中的特定内容。
必备知识
阅读本文前,您需要具备相关的基础知识:
1.Fetch 网页,模拟登录等相关逻辑
不熟悉的请参考:
【整理中】关于爬取网页、分析网页内容、模拟登录网站的逻辑/流程及注意事项
2.学习使用工具,比如IE9的F12,爬取对应的网页执行流程
不熟悉的请参考:
【教程】教你使用工具(IE9的F12)分析模拟登录网站(百度主页)的内部逻辑流程
3.对于普通静态网页,如何提取需要的内容
如果你对此不熟悉,可以参考:
(1)Python 版本:
【教程】python版爬取网页并提取网页中需要的信息
(2)C#Version:
【教程】C#版抓取网页并提取网页中需要的信息
什么是动态网页
这里所谓的动态网页是相对于那些静态网页而言的。
这里所说的静态网页是指在浏览器中查看网页源码时看到的网页源码中的内容以及网页上显示的内容。
也就是说,当我想在网页上显示某个内容时,可以通过搜索网页的源代码来找到相应的部分。
相反,对于动态网页,如果想获取动态网页中的具体内容,直接查看网页源代码是无法找到的。
动态网页中的动态内容从何而来?
所以,这里有一个问题:
所谓动态网页中的动态内容从何而来?
简而言之,它是通过其他方式生成或获得的。
目前,我学到了几件事:
由本地 Javascript 脚本生成
如果你用IE9的F12来分析访问一个URL的过程,你会发现很可能会涉及到,
在网页正常显示之前,这段时间会访问很多javascript脚本,简称js脚本或js。
这些js脚本实现了很多动态的交互内容。
其中,对于一些想要抓取的内容,有时这些js脚本是动态执行最后计算出来的。
通过访问另一个 url 地址获得
很多时候,有些内容是访问另一个url地址后返回的数据;
如何获取我要爬取的动态内容
其实,关于如何抓取需要的动态内容,简单来说,有一个解决方案:
根据自己通过工具分析的结果,自己找到对应的数据,提取出来;
只是这样,有时可以在分析结果的过程中直接提取这些数据,有时可能会通过js进行计算。
如果要抓取数据,由js脚本生成
虽然最终的一些动态内容是通过js脚本的执行产生的,但是对于你要抓取的数据:
你要抓取的数据是通过访问另一个url获取的
如果对应你要抓取的内容,需要访问另外一个url地址和返回的数据,那么就很简单了,你也需要单独访问这个url,然后获取对应的返回内容,并提取你从它得到你想要的数据。
总结
同一句话,不管你访问的内容是怎么生成的,最后还是可以用工具分析一下对应的内容是怎么从头生成的。
然后用代码模拟这个过程,最后提取出你需要的;
具体的示例演示,请参见:
【教程】以抓取网易博文近期读者信息为例,教你抓取动态网页内容。