网站内容抓取(如何抓取所谓的动态网页中的特定内容-解释一下)

优采云 发布时间: 2021-08-30 20:07

  网站内容抓取(如何抓取所谓的动态网页中的特定内容-解释一下)

  背景

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

  不过,除了前面介绍的,我还想从一些静态网页中提取具体的内容,比如:

  和

  除了

  ,有些人会发现自己要爬取的网页的内容不在网页的源代码中。

  所以,这个时候,我不知道如何实现它。

  在这里,让我们解释一下如何抓取所谓的动态网页中的特定内容。

  必备知识

  阅读本文前,您需要具备相关的基础知识:

  1.Fetch 网页,模拟登录等相关逻辑

  不熟悉的请参考:

  2.学习使用工具,比如IE9的F12,爬取对应的网页执行流程

  不熟悉的请参考:

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

  如果你对此不熟悉,可以参考:

  (1)Python版:

  (2)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 个评论

要回复文章请先登录注册


官方客服QQ群

微信人工客服

QQ人工客服


线