微博,作为当下主流的社交平台之一,日活跃用户高达2亿多人。人们可以在微博上发表自己的感悟,自己的照片以及日常的生活内容。微博为广大的用户提供了更加多元化的社交平台。

相比于微信,许多小姐姐们更喜欢在微博上同大家分享自己日常生活中的照片。比如菜鸟哥,就非常喜欢冰冰小姐姐。今天就带大家一起,手把手的抓取冰冰小姐姐的微博图片,并保存到本地。一起来看看吧。

00.整体的思路:

01.微博主页信息

对于微博网页的抓取,很多小伙伴都是通过网络抓包的方式,来获取图片的链接地址,从而获取图片。

通过抓包的方式来获取图片的链接,非常的麻烦,而且容易被反扒。其实我们可以通过微博的API接口来获取用户的微博的内容。例如,获取微博用户的基本数据,我们只需要知道用户的微博。

例如我们打开冰冰酱的网页版微博(https://weibo.com/u/6512991534)。其中的6512991534就是微博id。我们可以打开她的网页地址,返回的就是冰冰微博的主要信息内容:

由于数据是以Unicode的编码显示,而且杂乱无章。没关系,我们通过将数据进行下载,然后进行整理。结果如下图所示:

经过解析后的数据,可以清晰的看出,微博的主要信息包含了用户的名称,微博的头像地址,以及性别,粉丝数量等重要信息。通过程序,我们同样可以模仿浏览器来向接口请求结果,并解析数据。

上图程序中,通过self.get_data函数来获取网页的json数据,并进行解析,获取得到json_data数据。(28-29行)

接下来,就是获取json_data数据中的关键信息,包括微博的头像地址,微博主页网址等信息(31-41)。

在返回的json_data数据中,包含着一项重要的内容:“containerid”。通过containerid信息,我们才能进行后续的微博详情页面的抓取。因此,我们要提取出containerid数值,并返回containerid(42-46)。

当执行上述的函数时,得到用户微博的主要信息。结果如下:

上图函数中,展示的是self.get_data函数。函数的主要作用就是向指定的网页url请求数据。

函数中,通过设置ProxyHandler,来设置我们自己的http代理(18-20行)。

函数通过urllib库来获取数据,然后将获取得到的数据进行返回(21-22行)。

02.微博详情页抓取

上面的程序,提供的是用户的微博主要内容信息,那么接下来,就是最重要的微博详情的抓取,包括微博相册以及发布的微博内容信息。

在函数get_weibo中,首先通过self.get_user_info 函数获取得到了containerid的数值(第51行)。

接下来在while循环中,利用containerid以及用户的微博id数值以及微博的页数来构造出网页详情的链接地址(第54行)。

利用self.get_data函数来获取网页返回的json数据,并解析获取得到cards字典(56-58行)。

如果cards的长度大于0,表明该页微博中有微博动态信息,接下来就可以按照字典的操作方式,来层层获取数据,包括微博的文字内容,以及微博动态的点赞数,评论数等信息内容(60-71行)。

如果mblog中的“pics”值不为None,那么就说明,该条微博动态中包含图片信息,大家就可以提取对应的图片链接地址,并将图片下载到本地文件夹内(72-80行)。

03.保存为相册

最后,将提取到的文字信息,打印到终端当中。这里我们关注的是图片的内容,而不是其他的文本信息,因此不需要将抓取到的文本信息进行保存等特殊的处理。

运行上述函数,我们就可以又快又准的抓取冰冰小姐姐的微博相册了。我们一起来看看抓取的结果吧。

如果你也是冰冰的fans,欢迎在留言区吱一声哦,说说你的想法哦。我们月底会给经常来留言打卡的同学送书10本,记得常来指导工作哦!

推荐阅读:

入门: 最全的零基础学Python的问题  | 零基础学了8个月的Python | 实战项目 |学Python就是这条捷径

量化: 定投基金到底能赚多少钱?  | 我用Python对去年800只基金的数据分析

干货:爬取豆瓣短评,电影《后来的我们》 | 38年NBA最佳球员分析|   从万众期待到口碑扑街!唐探3令人失望  | 笑看新倚天屠龙记灯谜答题王 |用Python做个海量小姐姐素描图碟中谍这么火,我用机器学习做个迷你推荐系统电影

趣味:弹球游戏  | 九宫格  | 漂亮的花 | 两百行Python《天天酷跑》游戏!

AI: 会做诗的机器人给图片上色 | 预测收入 | 碟中谍这么火,我用机器学习做个迷你推荐系统电影

小工具: Pdf转Word,轻松搞定表格和水印! | 一键把html网页保存为pdf!|  再见PDF提取收费! | 用90行代码打造最强PDF转换器,word、PPT、excel、markdown、html一键转换 | 制作一款钉钉低价机票提示器! |60行代码做了一个语音壁纸切换器天天看小姐姐!|

年度爆款文案

  • 1).卧槽!Pdf转Word用Python轻松搞定!

  • 2).学Python真香!我用100行代码做了个网站,帮人PS旅行图片,赚个鸡腿吃

  • 3).首播过亿,火爆全网,我分析了《乘风破浪的姐姐》,发现了这些秘密

  • 4).80行代码!用Python做一个哆来A梦分身

  • 5).你必须掌握的20个python代码,短小精悍,用处无穷

  • 6).30个Python奇淫技巧集

  • 7).我总结的80页《菜鸟学Python精选干货.pdf》,都是干货

  • 8).再见Python!我要学Go了!2500字深度分析

  • 9).发现一个舔狗福利!这个Python爬虫神器太爽了,自动下载妹子图片

点阅读原文,看Python全套!

我摊牌了,熬夜用Python给女神冰冰做了一个相册!发现...相关推荐

  1. python 微信bot_我做了一个Python Bot,可以解决任何给定图像中的多项选择问题。 码]...

    python 微信bot 在这篇文章中,我将向您展示如何使用Python构建自己的答案查找系统. 基本上,这种自动化可以从图片中找到多项选择题的答案. 一件事很清楚,在考试期间不可能在互联网上搜索问题 ...

  2. 为了让大家更好地学习python爬虫,我们做了一个“靶子”

    1 很多学习 python 的同学应该都听说过"网络爬虫"的概念,也可能听说过用 python 写网络爬虫很方便. 那么什么是爬虫?百度百科上是这么定义的: 网络爬虫(又称为网页蜘 ...

  3. 使用 Python 为女神挑选口红 ,成功把女神拿下,你学会了吗

    口红对于女生来说永远不嫌多,而男生也搞不明白珊瑚红.番茄色.斩男色等等颜色有什么区别,不都是红色么?当送给女神的口红是她不适合的,那结果就是口红进入垃圾箱还算是轻的,重则拉黑处理.男生们也不用着急,我 ...

  4. python写一个表白程序_用Python个女神做一个表白神器

    用Python给女神表白 情人节刚刚过去,但男同胞们对女神的暗恋愈加热烈,想尽一切办法表白,今天,咱们就用Python制作一个表白神器. 程序介绍 运用pygame制作一个小游戏,当女神用鼠标点击&q ...

  5. python制作表白神器_用Python个女神做一个表白神器

    用Python给女神表白 情人节刚刚过去,但男同胞们对女神的暗恋愈加热烈,想尽一切办法表白,今天,咱们就用Python制作一个表白神器. 程序介绍 运用pygame制作一个小游戏,当女神用鼠标点击&q ...

  6. Python什么都能做(二)用Python画微信新出的表情包

    11月18日,微信团队又推出了六张全新的小表情,可爱而有趣的表情瞬间火爆了大家的微信好友圈,也毫无疑问的登上了微博热搜榜的首位.各大明星纷纷效仿表情包,引发了一波全民的娱乐小高潮. 腾讯推出的新表情包 ...

  7. python 获取集合里面的某一个元素

    python 获取集合里面的某一个元素,想想呢集合是不支持所以,切片,相加,相乘操作的, 所以想获取集合里面的某一个元素需要转化下思路,比如把即可转成列表然后在利用索引获取 例如: list_a = ...

  8. python mysql 分页_利用python对mysql表做全局模糊搜索并分页实例

    在写django项目的时候,有的数据没有使用模型管理(数据表是动态添加的),所以要直接使用mysql.前端请求数据的时候可能会指定这几个参数:要请求的页号,页大小,以及检索条件. "&quo ...

  9. 重庆python就业工资待遇-重庆达内毕业的Python学员都在做什么?能拿多少工资?...

    都说现在Python是最值得学习的语言,但仍然有不少学员有疑问,Python学完到底可以做什么?工资又能拿到多少呢? 今天,我就给大家看看已经毕业了的达内Python学员们都在做什么,都拿到了多少薪资 ...

最新文章

  1. 构建区块链数字货币交易平台服务器的选择
  2. 今天悄悄的给你说几个HashCode的破事。
  3. 计算机网络(一)计算机网络概述、组成、功能分类、性能指标 | 思维导图
  4. 7-8 InputMismatchException异常 (20 分)
  5. poj 2528 Mayor's posters(线段树+离散化)
  6. java 变量的调用方法_java类变量的调用方式
  7. 有感于去哪儿的一道笔试题
  8. 物理层接口特性、数据通信模型、物理层基本概念(数据、信号、码元 、信源、信道、信宿 、速率、波特、带宽)...
  9. 中国甲状腺功能减退药行业市场供需与战略研究报告
  10. 频谱仪使用方法图解_安全继电器工作原理、接线图、使用方法图解
  11. GANs之信息量、信息熵、交叉熵、KL散度、JS散度、Wasserstein距离
  12. Sublime Text3配置LaTeX环境及使用Sumatra PDF作为阅读器——亲测可用
  13. 【180620】小人物走路、奔跑的VC++游戏特效
  14. iOS 适配iPhone XR/XS/XS MAX
  15. Windows操作系统注册表registry
  16. github修改语言设置
  17. 【小程序】常见系统API | 页面分享 | 位置信息 | 本地存储
  18. Java锁与线程的那些“不可描述”的事儿
  19. 有财学院http://www.godgold.com/learn/title_asp/index.html
  20. HiveSQL一天一个小技巧:如何借助于str_to_map进行行转列

热门文章

  1. 麦肯锡中国银行业白皮书,得零售者得未来
  2. 详解拉卡拉支付赋能商户运营模式
  3. VBA读取excel文件
  4. USB的线缆以及插头、插座(转…
  5. 论文阅读笔记——Backdoor Defense with Machine Unlearning
  6. 语音识别如何处理汉字中的「同音字」现象?
  7. 快速入门 | 篇十二:正运动技术运动控制器U盘接口的使用​
  8. AviSynth 教程(收集、整理)
  9. 2021年全国卷二物理电磁感应大题解析
  10. C++ —— 二叉搜索树