分析Ajax抓取今日头条街拍美图(一)

1043-Python-小组:李凯旋

工具:
  • Python3.5
  • requests库(网络库)
  • BeautifulSoup(解析库)
  • MongoDB(存储库)
先解释下Ajax

Ajax 是一种用于创建快速动态网页的技术,通过在后台与服务器进行少量数据交换,Ajax可以使网页实现异步更新。就是如打开某个网页,鼠标下拉,网页又多了一部分内容,在这个过程之中只加载了多出来的那部分内容,并没有重新加载整个页面内容,这样的一项技术就是Ajax创建快速动态网页的技术。

例如:

分析Ajax抓取今日头条街拍美图(一)_第1张图片
Ajax异步加载

鼠标下拉,这个显示加载中的样式就是Ajax异步加载。

目标站点分析

输入网址URL是 http://www.toutiao.com/search/?keyword="街拍"

我们的目标是抓取街拍图集,返回图集标题、并将每一个图集的每一张子图存到项目根目录:

索引页
分析Ajax抓取今日头条街拍美图(一)_第2张图片
索引页
详情页

点开图集后出现详情页,这就是我们要获得的其中一组图片

分析Ajax抓取今日头条街拍美图(一)_第3张图片
详情页
分析索引页下的网页源代码(按F12)

首先动态加载肯定不是Doc目录下的,所以应该在XHR(异步)下查找

分析Ajax抓取今日头条街拍美图(一)_第4张图片
索引页分析1

根据观察以及往下拉网页我们会发现有一个 ?offset这个标签一直在刷新,而且每次都会增加20。然后我们找到Preview查找到响应的代码,在data标签下包含图片和标题。


图中的title即是我们需要的图集标题,url即是我们需要的图集链接。

分析Ajax抓取今日头条街拍美图(一)_第5张图片
索引页分析2
分析详情页源代码(按F12)
分析Ajax抓取今日头条街拍美图(一)_第6张图片
详情页分析1

这组图下有8张图,每张图的链接都包含gallery这个变量字典下。
下一节,我们开始获得索引页,并解析索引页。

你可能感兴趣的:(分析Ajax抓取今日头条街拍美图(一))