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

在 Windows 下如果安装了 Python3, 那么在 cmd 下直接可以通过 pip 来安装这两个模块, 命令如下:

pip install requestspip install beautifulsoup4
复制代码

在 Ubuntu 下安装方法如下:

sudo apt-get install python3-pipsudo pip3 install requestssudo pip3 install beautifulsoup4
复制代码

然后我们运行 Python3, 试一下是否能把这两个模块 import 进来, 就知道是否安装成功了:

C:\Users\Liu>pythonPython 3.4.2 (v3.4.2:ab2c023a9432, OcType "help", "copyright", "credits" o>>> import requests>>> from bs4 import BeautifulSoup>>>
复制代码

前天给大家分享了如何利用Python网络爬虫爬取微信朋友圈数据的上篇(理论篇),今天给大家分享一下代码实现(实战篇),接着上篇往下继续深入。

##如何利用Python网络爬虫抓取微信朋友圈的动态(上)

###一、获取朋友圈数据入口

#####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在线解析器里,如下图所示:

##如何利用Python网络爬虫抓取微信朋友圈的动态(下)

###一、代码实现

#####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,此时可以看到编码问题已经解决了,如下图所示。

作者:dcpeng 链接:https://www.jianshu.com/p/30643753e957 來源:简书 简书著作权归作者所有,任何形式的转载都请联系作者获得授权并注明出处。

其他的不用多讲,需要详细了解的可以搜索下,我只是提供大家几个方面让大家了解,因为往往对于初学者,是迷茫的,因为不支持从什么方向去了解一个事物,而我就是提供方向的,具体的大家可以自己去了解。

话不多说,资源共享,直接上图:

还有很多包括视频我就不一一截图了,需要这些资料的可以先关注小编,转发评论,私信小编

转载于:https://juejin.im/post/5b5d81ce6fb9a04fe7281760

2018最全如何利用Python网络爬虫抓取微信朋友圈的动态相关推荐

  1. python抓取微信朋友圈动态_2018最全如何利用Python网络爬虫抓取微信朋友圈的动态...

    今天小编给大家分享一下如何利用Python网络爬虫抓取微信朋友圈的动态信息,实际上如果单独的去爬取朋友圈的话,难度会非常大,因为微信没有提供向网易云音乐这样的API接口,所以很容易找不到门.不过不要慌 ...

  2. python爬虫微信朋友圈怎么发文字_如何利用Python网络爬虫抓取微信朋友圈的动态(上)...

    今天小编给大家分享一下如何利用Python网络爬虫抓取微信朋友圈的动态信息,实际上如果单独的去爬取朋友圈的话,难度会非常大,因为微信没有提供向网易云音乐这样的API接口,所以很容易找不到门.不过不要慌 ...

  3. 如何利用Python网络爬虫抓取微信朋友圈的动态(上)

    今天小编给大家分享一下如何利用Python网络爬虫抓取微信朋友圈的动态信息,实际上如果单独的去爬取朋友圈的话,难度会非常大,因为微信没有提供向网易云音乐这样的API接口,所以很容易找不到门.不过不要慌 ...

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

    1.引言 最近初学Python,写爬虫上瘾.爬了豆瓣练手,又爬了公司的论坛生成词云分析年度关键词.最近琢磨着2017又仅剩两月了,我的年度关键词是啥? 所以自然想到爬取下自己的微信朋友圈,来个词频分析 ...

  5. python抓取朋友圈动态_如何利用Python网络爬虫爬取微信朋友圈动态--附代码(下)...

    原标题:如何利用Python网络爬虫爬取微信朋友圈动态--附代码(下) 前天给大家分享了如何利用Python网络爬虫爬取微信朋友圈数据的上篇(理论篇),今天给大家分享一下代码实现(实战篇),接着上篇往 ...

  6. 如何利用Python网络爬虫爬取微信朋友圈动态--附代码(下)

    前天给大家分享了如何利用Python网络爬虫爬取微信朋友圈数据的上篇(理论篇),今天给大家分享一下代码实现(实战篇),接着上篇往下继续深入. 一.代码实现 1.修改Scrapy项目中的items.py ...

  7. python朋友圈动态_如何利用Python网络爬虫爬取微信朋友圈动态--附代码(下)

    前天给大家分享了如何利用Python网络爬虫爬取微信朋友圈数据的上篇(理论篇),今天给大家分享一下代码实现(实战篇),接着上篇往下继续深入. 一.代码实现 1.修改Scrapy项目中的items.py ...

  8. python展示全部好友_利用Python网络爬虫抓取微信好友的签名及其可视化展示

    前几天给大家分享了如何利用Python词云和wordart可视化工具对朋友圈数据进行可视化,利用Python网络爬虫抓取微信好友数量以及微信好友的男女比例,以及利用Python网络爬虫抓取微信好友的所 ...

  9. python爬虫好友聊天记录_利用Python网络爬虫抓取微信好友的签名及其可视化展示...

    前几天给大家分享了如何利用Python词云和wordart可视化工具对朋友圈数据进行可视化,利用Python网络爬虫抓取微信好友数量以及微信好友的男女比例,以及利用Python网络爬虫抓取微信好友的所 ...

最新文章

  1. 开源云计算mysql_云计算-开源数据库-SQL2
  2. windows 常用工具
  3. 8除以2表示什么意思_平均配速8'12'是什么意思
  4. layer文件ajax上传,layer弹出层数据传输到content里面
  5. 卷积神经网络训练准确率突然下降_详解卷积神经网络:手把手教你训练一个新项目...
  6. 工厂打工10年,现在被工厂以能力不足为由辞退,可以去仲裁吗?
  7. 调整姿势!登顶 MacBook高效工作环境配置!
  8. grub rescue
  9. ehvierwer登录与不登录_自媒体账号管理神器,多个平台同时登录,给你不一样的感觉...
  10. Spec2006使用说明
  11. “印象笔记”使用笔记
  12. python加数据库_python向数据库添加数据(添加一条数据)
  13. SystemService简介
  14. 无盘服务器chkdsk *: /f)修复命令,使用CHKDSK命令修复U盘文件或目录损坏无法读取问题...
  15. delphi----Tstringlist,将有符号的数据变成数组aaa,bbb,ccc----list[0]=aaa,list[1]=bbb
  16. 各种可执行文件的打包教程,让你的可执行文件美观起来(打包成一个文件,自定义图标)!!!
  17. Arduino :PWM详解和电路搭建以及示例代码
  18. Radon定理与证明
  19. 大厂真题泄漏:高频自动化测试面试题,看完面试成功率高达99%
  20. System.Diagnostics.Debug和System.Diagnostics.Trace

热门文章

  1. 电子邮件和短信将令情书绝迹
  2. 光大证券毁在一个笨蛋程序员手里
  3. 理光Ricoh Aficio 550 一体机驱动
  4. 开关电源环路笔记(11)-TL431电路的几个电阻的取值
  5. 计算机专业什么都要查重,知网查重查不查计算机专业?
  6. 微信中看到的好文章如何收藏?不再因为微信软件升级丢失文章。
  7. python实现计算移动平均值MA
  8. linux压缩指定时间的文件,Linux下压缩某个文件夹(文件夹打包)
  9. madVR(视频渲染器)免费版 v0.92.17
  10. 会计论文选题什么方面比较好写且重复率较低?