美文网首页
如何确定网页中的数据是什么数据包发过来的

如何确定网页中的数据是什么数据包发过来的

作者: Python课程作业 | 来源:发表于2017-06-05 08:34 被阅读280次

回答一个同学的提问,为什么网站中的数据,明明BeautifulSoup,XPath写提没有问题,却没有抓取到数据,如何决判断这个数据是异步加载的,异步加载的包怎么找?

1、现在很多网页都采用了异步加载的方式(Ajax),好处可以大大提高网站响应速度和用户体验度。

AJAX即“Asynchronous Javascript And XML”(异步JavaScript和XML),是指一种创建交互式网页应用的网页开发技术。
AJAX = 异步 JavaScript和XML(标准通用标记语言的子集)。
AJAX 是一种用于创建快速动态网页的技术。

通过在后台与服务器进行少量数据交换,AJAX 可以使网页实现异步更新。这意味着可以在不重新加载整个网页的情况下,对网页的某部分进行更新。
传统的网页(不使用 AJAX)如果需要更新内容,必须重载整个网页页面。

一般的做法是,当前网页的主要信息内容会首先加载进来,大的图片,非本页面核心相关的内容稍后异步的方式加载进来(json数据)

这是简页首页,大家看到打开首页时,向服务器发送了93个请求,包括首页document, js(javascript), 图片,和json数据。

对于首页来说,用户首先要看到的是热门文章,所以右边的推荐作者就是异步加载进来的

我们用chrome右键检查时,比较容易找到这个异步的请求,返回的就是json,找的方法,就是看请求Name 和 type,排除图片和js再看名称,基本就能确定下来,简书代码也是相当整洁优雅,看名字 recommended?page=1&per_page=5 这个就是页面上的右边的推荐作者。

不过从这个页面的抓取来说,首页我们关注的数据是文章,文章URL和阅读量,评论数,点赞数和文章作者。在一个页面我们不会去处理推荐作者的数据信息。

这里就是一个分析。上次视频中Young在这里讲到分析这个URL,可以快速抓取到所有推荐作者的信息。有兴趣的同学也可以对推荐作者的信息进行一下分析。

另外还要说明一点:使用chrome右键检查工具,是能够找到异步加载的数据的标签 ,xpath路径的,但是如果是用页面的URL去抓取数据肯定是获取这个内容的,因为数据都还没有进来。而chrome的右键检查,在页面所有数数据加载完成了。无论是同步数据,异步加载的数据最后都会渲染在网页中的,也就是有一样的样式,能够找到它的标签或xpath。

而在网页中右键源代码的方式查看,一般看的是一次请求的源代码,这时是你看异步加载的数据。如果你网页比较熟悉或者看得比较有,有些网页内容很多,你右键查看源代码,可能没有这么多内容或者代码比较少,仔细看一下,这可能是一个框架页面(之前用得比较多点)。

所以检查一个页面中的数据哪些是异步请求(大家俗称是“包”),要确定哪些是“包”,一是多分析网络请求,二是掌握页面的一些规律。

大家可以对比分析一下拉钩网的职位数据抓取。

2、遇到一些异步加载的数据,怎么也找不到包怎么办?
大家可以看一下58岗位的抓取时,这个岗位的 浏览量和申请人数,会发现这个也是一个异步数据。(这种也是一个网页特点)

但是这个异步数据的“包”,真找不到(可能藏在某个js的请求中)

如果需要这个数据怎么办,就只能用其他方法。可以参考 http://www.jianshu.com/p/3abbc259f55a

总之,分析网页,分析请求,确定类型,快速用不同方式去尝试。这也大概是爬虫学习和数据抓取的魅力。你可能每次遇到的问题都不太一样。

相关文章

  • 如何确定网页中的数据是什么数据包发过来的

    回答一个同学的提问,为什么网站中的数据,明明BeautifulSoup,XPath写提没有问题,却没有抓取到数据,...

  • 网络试题(选择)

    1、在OSI 7 层模型中,网络层的功能有 A、确保数据的传送正确无误 B、确定数据包如何转发与路由 C、在信道上...

  • TCP协议原理

    一个数据包的生命过程:数据包如何送达主机、主机如何将数据包转交给应用、数据是如何被完整地送达应用程序 互联网,实际...

  • LLDP数据包中添加自定义LLDPDU

    在LLDP数据包中添加自定义LLDPDU 如何在LLDP数据包中携带发送时间戳LLDP描述文件:ryu/lib/p...

  • windows环境下常用的网络命令

    1. ping命令 当给某个IP地址发送一个数据包时,对方就要返回一个同样大小的数据包,根据返回的数据包可以确定目...

  • DatistEQ之彪悍的网页截图

    之前的文章中介绍了网页抓包分析,从网页上探查数据包,以便于数据分析与应用。 本文,我给大家介绍一个彪悍的节点,网页...

  • 网络协议卸载

    reroute:重新选择路由(数据包沿着所述标号交换路径到达后备路径段的源网络元件时,选择性地重新确定所述数据包沿...

  • 主流数据包捕获技术的比较与分析

    前言 在网络安全领域中数据包捕获技术的应用十分广 泛,在当前高速网络环境中,如何实时、高效、完整、快速捕获数据包是...

  • Python爬虫入门笔记(一)

    一、什么是爬虫 简单讲就是将网页中的数据下载到本地。 二、如何获取网页 既然要将网页中的数据下载下来,那我们是不是...

  • HTTP(一)

    1. HTTP原理 http请求封装在应用层数据包中,再封装到tcp数据包中,再封装到ip数据包中,再封装到以太网...

网友评论

      本文标题:如何确定网页中的数据是什么数据包发过来的

      本文链接:https://www.haomeiwen.com/subject/bkxifxtx.html