美文网首页pythonpython社区Python学习资料整理
python爬虫爬取指定用户微博图片及内容,并进行微博分类及使用

python爬虫爬取指定用户微博图片及内容,并进行微博分类及使用

作者: 9ba4bd5525b9 | 来源:发表于2019-06-16 16:09 被阅读63次

    虽然我是不用微博的,但由于某种原因,手机端的微博会时不时地推送几条我必须看的消息过来。微博被看久了,前几天又看到 语亮 - 简书一年前的的微博爬虫,就有了对某人微博深入挖掘的想法。

    之前语亮的爬虫不能抓取用户一条微博的多张图片,一年后微博界面也发生了一些变化,决定还是参考语亮爬取手机端界面的方法更新下代码,同时加上一点小小的数据分析。

    主要想法是抓取指定用户的全部微博原创内容和全部原创图片保存到本地,然后对原创微博进行分类,并统计用户最爱使用的表情、最常使用的词语和微博中提到的人名。

    (经过验证妹子的微博大多集中在美食类、购物类、美妆类和旅游类)

    下面说下爬取步骤、展示结果以及详细代码:

    因为PC端的微博是JS内容不好爬取,所以还是选择了chrome打开微博手机版进行爬取,简单粗暴无障碍。

    1、获取自己的cookie,利用chrome浏览器。

    在chrome 中打开微博手机版,F12打开开发者工具,勾选Network的Preserve log项,然后输入账号密码登陆自己的微博。

    在m.weibo.cn->Headers->Cookie 复制下自己的cookie,一会需要粘贴到代码中运行。

    2、获取你要爬取的用户的微博User_id。

    依然在手机端找到你要爬取的用户,点进主页,这时浏览器后的ID就是User_id了。

    3、将获得的两项内容填入到weibo.py中,替换代码中的YOUR_USER_ID和#YOUR_COOKIE,运行代码就可以了。

    在我的测试过程中,发现不停访问微博内容的话,访问25页后就会因为请求过于频繁被拒绝,所以我的代码中每访问一页就sleep一分钟,不着急得到结果的话就一直放在后台跑就可以了。嫌慢的话可以自行修改sleep时间或者利用多个账号的cookie轮流爬取。

    爬取过程如下:

    会生成两个文件,分别存有用户所有文字微博和微博图片的url,在weibo_image文件夹中会下载用户所有的微博图片。

    (图片有时会下载失败,我的1249张里有4张失败,在日志中可以看到,再手动复制url下载一下即可)

    抓取结果如下图所示:

     4、下面我们对抓取到的微博内容进行分析,依然是将用户User_id填入代码analysis.py的YOUR_USER_ID处,运行代码即可。

    之后会自动生成四个文件,分别是:category.txt, word.txt, express.txt, name.txt. 分别存储了微博分类,常用词,常用表情,微博中的人名及出现次数。

    到这里我们的分析基本结束啦,下一步就是将得到的结果用图表清晰的展示出来。

    5、利用html5图表可视化结果

    在我的github中给出了xita.html模板,套用模板就可以直观的展示我们的代码了,把html文件发给别人看也是可以的。

    (这里调用了google的api,所以可能要FQ才能打开)

     最后成品如下:

    6、下面列出爬取微博和分析所用到的代码:

    用到的库看代码中的 import 内容就可以了,安装过程都很简单,大家自行 baidu or google 即可。

    weibo.py

    analysis.py

    相关文章

      网友评论

        本文标题:python爬虫爬取指定用户微博图片及内容,并进行微博分类及使用

        本文链接:https://www.haomeiwen.com/subject/dasgfctx.html