0
  • 聊天消息
  • 系统消息
  • 评论与回复
登录后你可以
  • 下载海量资料
  • 学习在线课程
  • 观看技术视频
  • 写文章/发帖/加入社区
会员中心
创作中心

完善资料让更多小伙伴认识你,还能领取20积分哦,立即完善>

3天内不再提示

如何利用Python网络爬虫抓取微信朋友圈的动态信息

马哥Linux运维 来源:未知 作者:李倩 2018-06-27 15:16 次阅读

今天小编给大家分享一下如何利用Python网络爬虫抓取微信朋友圈的动态信息,实际上如果单独的去爬取朋友圈的话,难度会非常大,因为微信没有提供向网易云音乐这样的API接口,所以很容易找不到门。不过不要慌,小编在网上找到了第三方工具,它可以将朋友圈进行导出,之后便可以像我们正常爬虫网页一样进行抓取信息了。

就提供了这样一种服务,支持朋友圈导出,并排版生成微信书。本文的主要参考资料来源于这篇博文:

感谢大佬提供的接口和思路。具体的教程如下。

一、获取朋友圈数据入口

1、关注公众号【出书啦】

2、之后在主页中点击【创作书籍】-->【微信书】。

3、点击【开始制作】-->【添加随机分配的出书啦小编为好友即可】,长按二维码之后便可以进行添加好友了。

4、之后耐心等待微信书制作,待完成之后,会收到小编发送的消息提醒,如下图所示。

至此,我们已经将微信朋友圈的数据入口搞定了,并且获取了外链。

确保朋友圈设置为【全部开放】,默认就是全部开放,如果不知道怎么设置的话,请自行百度吧。

5、点击该外链,之后进入网页,需要使用微信扫码授权登录。

6、扫码授权之后,就可以进入到微信书网页版了,如下图所示。

7、接下来我们就可以正常的写爬虫程序进行抓取信息了。在这里,小编采用的是Scrapy爬虫框架,Python用的是3版本,集成开发环境用的是Pycharm。

二、创建爬虫项目

1、确保您的电脑上已经安装好了Scrapy。之后选定一个文件夹,在该文件夹下进入命令行,输入执行命令:

scrapy startproject weixin_moment

,等待生成Scrapy爬虫项目。

2、在命令行中输入cd weixin_moment,进入创建的weixin_moment目录。之后输入命令:

scrapy genspider 'moment' 'chushu.la'

,创建朋友圈爬虫,如下图所示。

3、执行以上两步后的文件夹结构如下:

三、分析网页数据

1、进入微信书首页,按下F12,建议使用谷歌浏览器,审查元素,点击“Network”选项卡,然后勾选“Preserve log”,表示保存日志,如下图所示。可以看到主页的请求方式是get,返回的状态码是200,代表请求成功。

2、点击“Response”(服务器响应),可以看到系统返回的数据是JSON格式的。说明我们之后在程序中需要对JSON格式的数据进行处理。

3、点击微信书的“导航”窗口,可以看到数据是按月份进行加载的。当点击导航按钮,其加载对应月份的朋友圈数据。

4、当点击【2014/04】月份,之后查看服务器响应数据,可以看到页面上显示的数据和服务器的响应是相对应的。

5、查看请求方式,可以看到此时的请求方式变成了POST。细心的伙伴可以看到在点击“下个月”或者其他导航月份的时候,主页的URL是始终没有变化的,说明该网页是动态加载的。之后对比多个网页请求,我们可以看到在“Request Payload”下边的数据包参数不断的发生变化,如下图所示。

6、展开服务器响应的数据,将数据放到JSON在线解析器里,如下图所示:

可以看到朋友圈的数据存储在paras /data节点下。

接下来将写程序,进行数据抓取。接着往下继续深入。

四、代码实现

1、修改Scrapy项目中的items.py文件。我们需要获取的数据是朋友圈和发布日期,因此在这里定义好日期和动态两个属性,如下图所示。

2、修改实现爬虫逻辑的主文件moment.py,首先要导入模块,尤其是要主要将items.py中的WeixinMomentItem类导入进来,这点要特别小心别被遗漏了。之后修改start_requests方法,具体的代码实现如下图。

3、修改parse方法,对导航数据包进行解析,代码实现稍微复杂一些,如下图所示。

l需要注意的是从网页中获取的response是bytes类型,需要显示的转为str类型才可以进行解析,否则会报错。

l在POST请求的限定下,需要构造参数,需要特别注意的是参数中的年、月和索引都需要是字符串类型的,否则服务器会返回400状态码,表示请求参数错误,导致程序运行的时候报错。

l在请求参数还需要加入请求头,尤其是Referer(反盗链)务必要加上,否则在重定向的时候找不到网页入口,导致报错。

l上述的代码构造方式并不是唯一的写法,也可以是其他的。

4、定义parse_moment函数,来抽取朋友圈数据,返回的数据以JSON加载的,用JSON去提取数据,具体的代码实现如下图所示。

5、在setting.py文件中将ITEM_PIPELINES取消注释,表示数据通过该管道进行处理。

6、之后就可以在命令行中进行程序运行了,在命令行中输入

scrapy crawl moment -o moment.json

,之后可以得到朋友圈的数据,在控制台上输出的信息如下图所示。

7、尔后我们得到一个moment.json文件,里面存储的是我们朋友圈数据,如下图所示。

8、嗯,你确实没有看错,里边得到的数据确实让人看不懂,但是这个并不是乱码,而是编码的问题。解决这个问题的方式是将原来的moment.json文件删除,之后重新在命令行中输入下面的命令:

scrapy crawl moment -o moment.json -s FEED_EXPORT_ENCODING=utf-8,

此时可以看到编码问题已经解决了,如下图所示。

声明:本文内容及配图由入驻作者撰写或者入驻合作网站授权转载。文章观点仅代表作者本人,不代表电子发烧友网立场。文章及其配图仅供工程师学习之用,如有内容侵权或者其他违规问题,请联系本站处理。 举报投诉
  • 网络爬虫
    +关注

    关注

    1

    文章

    52

    浏览量

    8639
  • python
    +关注

    关注

    55

    文章

    4777

    浏览量

    84396
  • 微信
    +关注

    关注

    6

    文章

    509

    浏览量

    26489

原文标题:如何利用Python网络爬虫抓取微信朋友圈的动态

文章出处:【微信号:magedu-Linux,微信公众号:马哥Linux运维】欢迎添加关注!文章转载请注明出处。

收藏 人收藏

    评论

    相关推荐

    单身狗不哭,用段子霸占朋友圈

    `单身狗不哭,用段子霸占朋友圈!情人节,单身狗的劫!整理了网络上情人节段子提供给广大单身狗当朋友圈博素材!拿好!不谢!单身狗们是时候改变你单身的命运了,要不然明年你还是一个人,,,
    发表于 02-14 17:59

    Python爬虫简介与软件配置

    Python爬虫练习一、爬虫简介1. 介绍2. 软件配置二、爬取南阳理工OJ题目三、爬取学校信息通知四、总结五、参考一、爬虫简介1. 介绍
    发表于 01-11 06:32

    怎么用RK3288 android去解决朋友圈视频不能播放的问题呢

    怎么用RK3288 android去解决朋友圈视频不能播放的问题呢?
    发表于 02-18 06:59

    python网络爬虫概述

    网络爬虫(Web Spider)又称网络蜘蛛、网络机器人,是一种按照一定的规则,自动地抓取万维网信息
    发表于 03-21 16:51

    张小龙朋友圈致敬乔布斯,小程序给了安卓手机更多便利

    1 月 9 日,小程序如期上线。 目前,打开小程序共有三种方式:扫描二维码、好友分享(只能发给好友或群聊,不能发到朋友圈),以及用户
    发表于 01-09 11:08 978次阅读

    无人机,AppleWatch和朋友圈竟然是哆啦A梦发明的!

     是谁发明的?——张小龙   那信里面的朋友圈呢?还是张小龙吗?   绝对不是,而是日本的一个胖子——哆啦A梦。
    发表于 03-10 10:30 1908次阅读

    广告团队发布公告 朋友圈广告@好友评论互动能力全量开放

    广告团队发布公告 朋友圈广告@好友评论互动能力全量开放
    发表于 04-18 15:29 1144次阅读

    华为技术实力得到更多朋友圈的认可

    华为技术实力得到更多朋友圈的认可
    发表于 05-31 10:18 1088次阅读

    新版将支持朋友圈评论使用表情包

    12月23日消息,部分网友投递线索称,新版支持在朋友圈评论中使用表情包做回复。
    的头像 发表于 12-23 15:54 2393次阅读

    朋友圈评论表情包功能已暂停

    朋友圈评论表情包还没新鲜两天,就有网友发现,这一功能已经离奇消失。
    的头像 发表于 12-25 15:42 2607次阅读

    Python爬虫:使用哪种协议的代理IP最佳?

    网络大数据要抓取信息,大多需要经过python爬虫工作,爬虫能够帮助我们将页面的信息
    的头像 发表于 06-28 16:25 1927次阅读

    Python网络爬虫

    Python网络爬虫的方法说明。
    发表于 06-01 11:55 21次下载

    汽车芯片有多缺货,广汽老总亲自发朋友圈找ST芯片

    转发了这条寻芯片的。 缺货都缺到需要发朋友圈的地步了,汽车芯片到底是有多缺?有媒体采访了广汽乘用车的一位高管,他回答,“我们老总已经号召公司上上下下利用各种资源和渠道寻芯片了,我也
    发表于 08-17 17:00 2134次阅读

    python网络爬虫概述

    网络爬虫(Web Spider)又称网络蜘蛛、网络机器人,是一种按照一定的规则,自动地抓取万维网信息
    的头像 发表于 03-21 16:50 2024次阅读

    利用Python编写简单网络爬虫实例

    利用 Python编写简单网络爬虫实例2 实验环境python版本:3.3.5(2.7下报错
    发表于 02-24 11:05 14次下载