Ajax动态网页分析--今日头条爬虫

2017-05-17  本文已影响0人  敢梦敢当

<h1>1 分析首页信息,获取每个标题真实链接<h1>

我们的目的是获得每个首页每篇文章的链接的url。

我们首先打开今日头条的首页,在搜索处搜索街拍。会出现如下的结果。

Paste_Image.png

我们要爬取的是图集里面的图片。我们再打开图片,点开检查。得到下面的结果。

Paste_Image.png

筛选其中XHR里面的文件,发现我们在滑动鼠标的时候,里面的文件随着鼠标的滑动而增加。在随意点开里面的一个文件,

Paste_Image.png Paste_Image.png

发现其都是一个基础的网址http://www.toutiao.com/search_content/? 再加上请求的各种信息。

offset:0
format:json
keyword:街拍
autoload:true
count:20
cur_tab:3

我们再分析Response里面的内容,发现我门所需要的每个图集的信息都在里面。

Paste_Image.png Paste_Image.png

其中我们需要目标链接url地址也在article_url里面,我们随意找一个url来打开,

Paste_Image.png

发现其就为我们所需要的目标链接。

<h1>2 分析目标链接里面的信息<h1>

我们的目的是获取目标网页里面每张图片的url。

首先,我们任意打开一个目标链接。经过分析,其中每张图片的url信息都在其返回信息的gallery里面。

Paste_Image.png

最后,我们只需要用正则匹配处每张图片的url就可以实现我们所需要的下载图片的功能。

<h1>3 下面我们开始编码来依次实现这些功能<h1>

<h3>(1) 首页的解析,获得每每个标题的url链接<h3>

我们将offset和keyword设为两个可变参数,改变offset的值就可以获得不同的目标链接信息。改变keyword的值就可以将‘街拍’改成 ‘动画’,‘自然’等等各种不同的图集。

Paste_Image.png Paste_Image.png

发现我们获得的首页数据为json格式的数据。之后我们就需要解析这里面的json数据,通过解析json数据获得其中每个目标网页的url链接.

Paste_Image.png Paste_Image.png

<h3>(2) 解析目标页的信息,获得每张图片的url链接<h3>

Paste_Image.png

至此,我们获得了目标图片的url链接,但是这里的url链接隐藏在json格式的字符串里面,我么之后就需要解析json字符串来获得其中的url链接.

Paste_Image.png Paste_Image.png

我们在这里就获得了所有图片的url链接信息,之后我们就需要将数据存储到mongodb数据库。

<h3>(3) 将数据存储到mongodb数据库<h3>

Paste_Image.png Paste_Image.png

获取到的数据如图。

<h3>(4) 下载所获得的图片链接<h3>

Paste_Image.png Paste_Image.png

<h3>(5) 引入多线程下载所获得的图片链接<h3>

Paste_Image.png Paste_Image.png

明显感觉其抓取速度加快,之后大功告成。

上一篇下一篇

猜你喜欢

热点阅读