写博客没高质量配图?python爬虫教你绕过限制一键搜索下载图虫创意图片!
2019-08-31 12:54
1546 查看
目录
@(文章目录)
前言
在我们写
文章(博客、公众号、自媒体)的时候,常常觉得自己的文章有些老土,这很大程度是因为
配图没有选好。
笔者也是遇到相同的情况,顺便解决其中一个案例,给大家一些技术上的参考和借鉴!
并且,我们搜图片如果去百度,会遇到两种情况:
非高清或者
带水印。这都是我们所忌讳的东西。笔者此次通过图虫创意抓起高清小图,虽然不是大图,但是在火热的移动端阅读上是足够的!
分析
废话说完了,我们开始分析怎么样才能获取这样的图片呢。
理想状态
- 我们的理想状态就是一个网页,我们的目标网页,把图片
<img src="xxxxxx">
直接放到html中。我们的爬虫可以直接解析。这种情况,就像你写的博客,个人网站的图片一样,简单嵌入。
或者就是通过后台ajax传输图片地址引用。我们
不清楚
是否这样!实际分析
但事实这种肯定会被理想破灭,因为不可能!他以图片为核心业务
,要你注册,购买等等,怎么可能就这么容易
的嵌入进入被你找到。那它到底如何实现呢?我们分析一下!
首先打开网页,检查图片,发现它的网页图片来源不唯一。有两个主要域名
ice和
wel,并且后面的编号还不唯一,但是可以尝试发现
相同域名不同后缀的图片地址结果相同!(例如
icweiliimg9和
icweiliimg/效果相同)。
我们发现原来这个搜索url会变化,但是这个查看网页源代码发现并没有我们想要的图片地址。那么我们肯定知道它
要么从ajax渲染,或者就
藏在js中进行混淆或者加密。我们发现这个xhr中并没有想要的数据,并且他其实藏在js中。其实这个可以猜想到的,因为它的
url既然跟着变化那么返回的数据肯定是有区别的。
那么分析就到这里,剩下就是python爬虫的模拟和解析了。
爬虫实现
前面说到已经知道它的数据源,我们用python编写爬虫需要进行模拟。经过测试发现它需要进行一些验证,其中包过
cookie的
wluuid字段(只验证存在,不验证正确性)。
那么我们编写一段代码就能拿到网页html。但是问题来了。数据藏在js里面啊!!!
我们只能用正则进行套了!
对于这个js,我们通过
js=soup.select('script') js=js[4]即可获取。
对于有用数据,只能正则截取。
pattern = re.compile(r'window.hits = (\[)(.*)(\])') va = pattern.search(str(js)).group(2)#解析js内容
但是这个类似json的串用
,拼接我们无法直接使用spilt分组分开,但是我们可以从
}全部替换成
},,那么就三个
,,,我们就可以分割而不影响其他json串内
,;split之后
每组都满足json串格式,直接转成json取值即可!
那么剩下拿到url直接构造url然后下载图片即可!
其他注意
图片下载:
- 下载图片有很多图片无名称或者名字相同,避免这个不下载要进行编号
- 两个url域名需要尝试下载其中一个成功即完成下载!
爬虫方面
- 全程不需要登录,下载为高清小图。后续可以考虑研究登录后的大图分享给大家!
其他
- 創建图片路径要考虑路径是否存在!
效果与总结
通过上述分析:编写爬虫:
测试结果:
打开文件夹:
发现nice!你只需要输入关键词即可实现自动下载,虽然是小图,但是效果不错!
移动端公众号和csdn效果!
不难发现,整个过程就是分析和处理字符串的逻辑难点。数据结构与算法扎实了处理问题都不难,!所以,如果要学习数据结构与算法,爬虫请关注我吧!公众号:bigsai
相关文章推荐
- Python 实用爬虫-04-使用 BeautifulSoup 去水印下载 CSDN 博客图片
- Python 实用爬虫-04-使用 BeautifulSoup 去水印下载 CSDN 博客图片
- Python爬虫学习记录(1)——百度贴吧图片下载
- 初学Python爬虫(三):图片下载、微信自动回复和数据可视化
- Python爬虫之提取Bing搜索的背景图片并设置为Windows的电脑桌面
- [python][project][爬虫] 堆糖网图片下载
- Python学习笔记:爬虫下载图片
- Python实现简单爬虫功能--批量下载百度贴吧里的图片
- Python根据关键字百度搜索下载图片
- Python爬虫小实践:下载妹子图www.mzitu.com网站上所有的妹子图片,并按相册名字建立文件夹分好文件名
- python爬虫日志(4)下载图片
- python实现爬虫下载美女图片
- Python爬虫系列(六)外国图库Unsplash图片自动化下载
- 【python】爬虫1——下载博客文章
- python爬虫框架scrapy学习图片下载
- Python3 爬虫下载指定页面图片
- Python爬虫实现抓取京东店铺信息及下载图片功能示例
- python爬虫:下载百度贴吧图片学习笔记
- Python网络爬虫实训:如何下载韩寒博客文章
- Python爬虫之多线程下载豆瓣Top250电影图片