黑客技能|我靠Ajax虫术爬取了大量小姐姐照片
Posted 白帽子左一
tags:
篇首语:本文由小常识网(cha138.com)小编为大家整理,主要介绍了黑客技能|我靠Ajax虫术爬取了大量小姐姐照片相关的知识,希望对你有一定的参考价值。
扫码领资料
获黑客教程
免费&进群
连下了几场大雨,但此时看着这雨后的晴天,我的雅兴油然而生,那就写个爬虫欣赏下漂亮的小姐姐吧
当然,本章Ajax爬虫的功能可不止这一点,只要稍加修改就会…… 所以 你懂的……
目前来讲,我觉得会写Ajax爬虫,无论是从事安全还是开发行业也好,这是一项必不可少的基本技能。
可是有不少不懂代码的小白又要头疼了。”Ajax是啥?”,”这个看不懂啊?”,”我连爬虫是啥都不知道!”…… 基于上面种种问题
我来写一篇 倾向于小白的有关如何生成Ajax爬虫脚本的文章。
先简单的来解释一下什么是Ajax吧
Ajax并不是一门编程语言(不用害怕)
它是一门技术,利用JS 保证在页面不被刷新,不改变页面链接的情况下与服务器进行数据交换来更新网页元素中的源代码 实现数据的更新。
我们身边就有很多类似的实例:
我们在浏览QQ空间的时候,是不是要不断向下滑动才能出现更多的内容呢?
向下滑动的时候是不是会出现”加载中……”类似的字样提示呢?
以上种种现象都是Ajax的请求。
Ajax的工作原理包含以下三点:
发送请求:建立对象->开始监听->向服务器发送请求->得到响应
解析内容:利用xmlhttp的responseText属性取得响应内容通过JS进行解析
渲染网页:再利用JS对上一步解析的内容进行进行下一步处理,然后对元素内的某的源代码进行更新。
OK 现在我们对Ajax的原理有了大概的了解,那么我们该考虑如何构造Ajax爬虫了。
构建Ajax爬虫需要找到请求url中的规律(这很简单,向下滑动页面,XHR中
就会出现更多Ajax的请求,我们只需要从中找不同就可以了)
————XHR———这是一个筛选器,可以筛选出所有的Ajax请求
稍后会讲到
检查字段,从响应中(Preview)检查字段内容,找到我们图片所藏匿的未知
开整!
一.我们先来确认一下 我们想要的内容是否是在Ajax请求中:
来到今日头条的页面,搜索”街拍”
然后按下F12->NetWork->找到当前网页的源码->Ctrl+F 搜索(”任意一个标题”)如图:
既然我们在当前页面源码中没有找到图片的地址,那么我们是不是可以去Ajax请求中去找一下呢?
(如果按F12打开NetWork没有内容的话 记得刷新一下哦)
这样就很奈斯,我们想要的内容就在Ajax请求中
所以我们可以继续向下检查字段的内容,然后构造脚本了o( ̄▽ ̄)ブ
看一下这个请求里面有什么字段:”data字段”中有一串列表,随便点开一个列表发现其中有一个名为”image_list”和”title”的字段
找到目标了,接下来的一步就是找到请求URL中的规律。
但是后面还有一大堆乱七八糟的字符串,看不懂啊肿么办?
教大家一个残暴的方法——直接删掉就好了,并不影响页面回显给我们的内容。
这里我们只讲URL请求保留到这么长就可以了。
Request URL: https://www.toutiao.com/api/search/content/?aid=24&app_name=web_search&offset=40&format=json&keyword=%E8%A1%97%E6%8B%8D&autoload=true&count=20&en_qc=1&cur_tab=1&from=search_tab&pd=synthesis
然后通过改变当中的offset查询条件即可
晓得了URL中的规律,下一步就是本篇文章的重头戏了!——构造Ajax爬虫脚本
为了视觉美观,代码这里我还是用图片展现出来吧。
本章全部源码的都在附件里,后台回复:“010”获取
一.构造请求函数:
这里有一点是Headers中设置cookie,可能有同学不清楚使用哪个cookie,如图:(一把复制进去就行)
为什么要设置COOKIE呢,其实就是为了维持会话的不间断。
为了更稳定的运行爬虫
二.保存美图url地址:
我们爬到结果后当然要把图片保存下来啦~
file_path = ‘{0}{1}.{2}’.format(title_path + ‘/‘,
md5(img_resp.content).hexdigest(), ‘jpg’)
这里md5().hexdigest()为的是让生成的图片不出现重名,直接套用即可。
现在我们将请求函数 和 保存函数 都构造完成,那么我们最后构造一个main()函数来执行前面的两个函数
之前我们找到offset的规律是每次Ajax请求都会成20的递增,那么我们就来构造一个成20递增的FOR循环
i 的结果就是0,20,40,60,80,100 (注意120不会遍历其中)
接下来每次发送请求 offset值都会增加20,直到最后一次请求offset的值为100为止
依次执行 getonepage()和saveimg()这里就不用过多解释了
最后一个函数_name==’__main()‘ 看过我之前文章的应该都晓得吧
最后我们执行以下 看看有没有漂亮的小姐姐到我们的电脑上来!(☆▽☆)
F5走一波(这里用的Python3执行)
但是把,执行到最后给我报了一个错!一报错就终止爬取小姐姐的照片了。
看一下报错结果应该是路径问题,无伤大雅的小报错,但却终止了我们的脚本
所以这里就卖一个小关子,怎么解决这个问题呢就交给你们喽
当然我会把修改后的结果放到附件里。
以上就是Ajax爬虫的全部内容啦,更多爬虫技巧会在后面慢慢教给大家哦
谢谢大家观看 觉得不错就点个赞吧 ,源码回复:“010”
奇奇怪怪的黑客技能总有用得上在时候,点个再看、以防丢失哦!
学习更多黑客技能!体验靶场实战练习
(黑客视频资料及工具)
往期推荐
以上是关于黑客技能|我靠Ajax虫术爬取了大量小姐姐照片的主要内容,如果未能解决你的问题,请参考以下文章