目录

  • 前言
  • 分析
    • 理想状态
    • 爬虫实现
    • 其他注意
  • 效果与总结

@(文章目录)

前言


在我们写文章(博客、公众号、自媒体)的时候,常常觉得自己的文章有些老土,这很大程度是因为配图没有选好。

笔者也是遇到相同的情况,顺便解决其中一个案例,给大家一些技术上的参考和借鉴

并且,我们搜图片如果去百度,会遇到两种情况:非高清或者带水印。这都是我们所忌讳的东西。笔者此次通过图虫创意抓起高清小图,虽然不是大图,但是在火热的移动端阅读上是足够的

分析


废话说完了,我们开始分析怎么样才能获取这样的图片呢。

理想状态

  • 我们的理想状态就是一个网页,我们的目标网页,把图片<img src="xxxxxx">直接放到html中。我们的爬虫可以直接解析。这种情况,就像你写的博客,个人网站的图片一样,简单嵌入
  • 或者就是通过后台ajax传输图片地址引用。我们不清楚是否这样!

    实际分析

    但事实这种肯定会被理想破灭,因为不可能!他以图片为核心业务要你注册,购买等等,怎么可能就这么容易的嵌入进入被你找到。

  • 那它到底如何实现呢?我们分析一下!

首先打开网页,检查图片,发现它的网页图片来源不唯一。有两个主要域名icewel,并且后面的编号还不唯一,但是可以尝试发现相同域名不同后缀的图片地址结果相同!(例如icweiliimg9icweiliimg/效果相同)。

我们发现原来这个搜索url会变化,但是这个查看网页源代码发现并没有我们想要的图片地址。那么我们肯定知道它要么从ajax渲染,或者就藏在js中进行混淆或者加密。我们发现这个xhr中并没有想要的数据,并且他其实藏在js中。其实这个可以猜想到的,因为它的url既然跟着变化那么返回的数据肯定是有区别的。

那么分析就到这里,剩下就是python爬虫的模拟和解析了。

爬虫实现

前面说到已经知道它的数据源,我们用python编写爬虫需要进行模拟。经过测试发现它需要进行一些验证,其中包过cookiewluuid字段(只验证存在,不验证正确性)。

那么我们编写一段代码就能拿到网页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

转载于:https://www.cnblogs.com/bigsai/p/11438619.html

写博客没高质量配图?python爬虫教你绕过限制一键搜索下载图虫创意图片!相关推荐

  1. 写文章没高质量配图?python爬虫绕过限制一键搜索下载图虫创意图片!

    文章目录 前言 分析 理想状态 实际分析 爬虫实现 其他注意 效果与总结 前言 在我们写文章(博客.公众号.自媒体)的时候,常常觉得自己的文章有些老土,这很大程度是因为配图没有选好. 笔者也是遇到相同 ...

  2. python博客访问量_史诗级干货-python爬虫之增加CSDN访问量

    AI 人工智能 史诗级干货-python爬虫之增加CSDN访问量 史诗级干货-python爬虫之增加CSDN访问量 搜索微信公众号:'AI-ming3526'或者'计算机视觉这件小事' 获取更多算法. ...

  3. 值!一篇博客,容纳11个Python爬虫案例总结,《爬虫100例》专栏第6篇复盘文章

    文章目录 案例 29:手机 APP 数据采集 案例 30:高考派大学数据采集 案例 31:36 氪(36kr)数据抓取 scrapy 案例 32:B 站博人传评论数据抓取 scrapy 案例 33:& ...

  4. 试写博客:可匿名聊天,腾讯QQ6.3(12390)新版下载

    9月12日消息,腾讯QQ开发团队小幅更新了QQ6.3正式版,最新版本号升级至12390,诚邀您来体验.这次,QQ 6.3最新版继续主打酷炫效果的天气图标,支持QQ群匿名聊,大胆表达你的真实想法.‍ 腾 ...

  5. 学无止境,笔不停耕----写博客两周年的一些感悟

    从翻译开始 在 CSDN 注册博客其实已经 3 年.动机是在学习Shiro 的时候,翻译了几篇官方文档.个人觉得这几篇文档写的很不错,但是英文不好的同学阅读起来会比较费劲.另外,翻译的过程也比较费时. ...

  6. Markdown编辑器写博客

    欢迎使用Markdown编辑器写博客 本Markdown编辑器使用StackEdit修改而来,用它写博客,将会带来全新的体验哦: Markdown和扩展Markdown简洁的语法 代码块高亮 图片链接 ...

  7. 我在博客园写博客的原因

    我为什么会在cnblogs上写博客.. CSDN上我上传过代码被很多网友下载过.CSDN我申请过博客.也写过几篇博客. 开源中国 我上传过代码.代码也被网友下载过.OSChina我申请过博客.也写过几 ...

  8. 使用Markdown编辑器写博客

    欢迎使用Markdown编辑器写博客 本Markdown编辑器使用StackEdit修改而来,用它写博客,将会带来全新的体验哦: Markdown和扩展Markdown简洁的语法 代码块高亮 图片链接 ...

  9. 明明很努力的写博客,为啥没人看?试试这些方法和工具(建议收藏)

    前言 写博客和公众号的部分兄弟们有时候是不是发现别人的文章内容没你的好,阅读量却比你的高很多,然后你总是吸引不到粉丝,无法上热榜呢(

最新文章

  1. 通俗易懂的TCP里面的三次握手以及四次挥手
  2. lt form gt 在html,HTML lt;formgt; 标签的 accept
  3. 冲刺阶段站立会议每天任务1
  4. php中如何加密,PHP中的加密功能
  5. mysql数据库限流方案_用于对MySQL数据库的并发操作进行控制的方法及装置的制造方法_3...
  6. eclipse可视化插件
  7. java 题库管理系统_JAVA WEB 题库管理系统
  8. python wget_python wget下载文件
  9. Mac Windows fliqlo 时钟屏保
  10. Windows XP和Windows 7双系统安装说明和注意事项
  11. 隐身术——使用Tor匿名网络与proxychains构建SOCKS代理链IP跳板,在***测试与******时销声匿迹...
  12. fatal: the remote end hung up unexpectedly问题解决办法
  13. linux debian vi,debian系统中常用的vi命令使用和讲解
  14. Long类型的数据转换
  15. Linux解压tar.gz文件
  16. leetcode1229. 安排会议日程
  17. [剑指Offer]-二叉树的深度
  18. SpringBoot实战之集成JSP模板展示(三)
  19. 如何在ubuntu14.04中安装IE8
  20. 电脑桌面便签软件怎么设置自定义分割线?

热门文章

  1. 机器学习面试题总结!!!!
  2. Vue项目设置全屏背景图片上方有白边的问题
  3. 前端中的A、B、C端解释
  4. 贝尔曼算法队列优化(SPFA)
  5. SaaSBase:什么是Teambition?
  6. Mac电脑蓝牙连接出问题了,如何重置Mac的蓝牙模块
  7. 用c语言实现图书信息管理系统
  8. 说话人识别(声纹识别)综述
  9. 关于Autosar中的NM模块的理解
  10. 成长型思维——人不成熟的五大特征和高效能人士的七个习惯