手把手带你爬取小姐姐私房照,就不信你不喜欢~

如何用Python搞到小姐姐私房照
本文纯技术角度出发 , 教你如何用Python爬虫获取百度图库海量照片——技术无罪 。
学会获取小姐姐私房照同理可得也能获取其他的照片 , 技术原理是一致的 。
手把手带你爬取小姐姐私房照,就不信你不喜欢~】目标站点
百度图片使用关键字搜索小姐姐私房照
开发环境
系统:Windows1064位
Python版本:Python3.6.5(Python3以上版本即可)
IDE:Pycharm(非必须 , 其实你完全可以记事本写代码)
第三方库:requests、jsonpath
效果预览
网页私房照
手把手带你爬取小姐姐私房照,就不信你不喜欢~
文章图片
代码爬取效果
正式教程
一、第三方库安装
在确保你正确安装了Python解释器之后 , 我们还需要安装几个第三方库 , 命令如下**[在终端中安装即可]**:
HTTP请求库:
1.pip3installrequests
JSON数据解析库:
2.pip3installjsonpath
二、爬虫的基本套路
不管是爬取哪类网站 , 在爬虫中基本都遵循以下的基本套路:
请求数据→获取响应内容→解析内容→保存数据
当然 , 以上步骤是代码的编写思路 , 实际操作中应该还要添加一个前置步骤 , 所以完整流程如下:
分析目标站点→请求网站获取数据→解析内容→保存数据
分析目标站点
快速的分析目标站点就很容易发现百度图库的图片资源是通过AJAX加载的 , 所以我们要请求的链接并非浏览器地址栏链接 , 而是ajax加载的数据包的资源路径 , 如图:
手把手带你爬取小姐姐私房照,就不信你不喜欢~
文章图片
那么问题来了 , 如何获取到这些数据包的地址?其实很简单 , 如图所示:
手把手带你爬取小姐姐私房照,就不信你不喜欢~
文章图片
请求网站获取数据
编写代码请求资源 , 这里有一点需要注意:请求头必须携带 , 否则有可能请求失败导致报错 。
importrequests#导包
#构建请求头 , 把爬虫程序伪装成正常的浏览器用户
headers={
'sec-fetch-dest':'image',
'Host':'image.baidu.com',
'User-Agent':'Mozilla/5.0(WindowsNT10.0;Win64;x64)AppleWebKit/537.36(KHTML,likeGecko)Chrome/89.0.4389.82Safari/537.36Edg/89.0.774.50',
}
#资源包的url链接
#构建请求
response=requests.get(url,headers=headers)
#查看状态码
print(response.status_code)
#获取原始数据
response.json()
解析数据
上述代码最终获取到的数据是json数据 , 也就是我们Python中常说的字典 , 它长这样:
既然它是一个字典 , 我们当然是可以使用Python中的键值索引方式获取到想要的数据 , 但是此方法太笨 , 这里介绍一种更加高明的方式 , 使用jsonpath解析数据
#这一行代码便可以获取到所有图片的URL , 返回的是一个列表 , 遍历即可拿到每一个URLimgs=jsonpath.jsonpath(json_data,'$..middleURL')
使用requests请求图片URL , 获取图片数据
image_data=https://pcff.toutiao.jxnews.com.cn/p/20230101/requests.get(page_url).content
保存数据
使用Python中的文件对象 , 保存图片 , 图片名字使用时间戳命名 , 避免图片重名
withopen('imgs/'+datetime.now().strftime("%Y%m%d%H%M%S%f")+'.jpg
','wb')asf:f.write(image_data)
写在最后
到这整个儿爬虫程序就写完了 。
当然 , 当前的这个只能爬取一个资源包中的数据 , 要爬取多个资源包或者说全部资源包的数据也是很简单的 , 只需要分析分析资源包的URL变化规律就不难发现其中的某个关键字变化 , 灵活改变该关键字就可以不断爬取 。