本发明涉及互联网通信技术领域,更具体地,涉及一种爬取微信公众号信息的方法。

背景技术:

目前,微信公众号中的内容的查看方式主要有两种:一种是通过搜狗微信的搜索功能查看公众号内容,一种是通过手机微信APP查看微信公众号内容。现有的微信公众号爬虫程序大多数是通过搜狗微信搜索微信公众号的方式爬取,效率低,而且搜狗微信搜索有反爬虫规则,获取到微信公众号内容有限,不能在短时间内获取大量的公众号内容。

技术实现要素:

本发明为克服上述现有技术所述的至少一种缺陷,提供一种爬取微信公众号信息的方法。

为解决上述技术问题,本发明的技术方案如下:

一种爬取微信公众号信息的方法,其特征在于,它包括以下步骤:

S1:确定待爬取公众号名称,将待爬取公众号的编号入库;

S2:依照预设的爬虫匹配规则,根据公众号名称爬取待爬取公众号,得到待爬取公众号的相关信息;

S3:将爬虫获取的待爬取公众号相关信息进行入库处理,处理后的待爬取公众号的相关信息入库;

S4:设置爬虫定时执行时间,根据待爬取公众号的相关信息定时爬取待爬取待爬取公众号文章,将爬虫获取的公众号文章入库;

S5:显示公众号文章。

进一步地,步骤S1具体包括以下两种情况:

S11:模糊匹配,即用户不清楚待爬取的公众号的准确名字,初步确定待爬取的公众号后,把其编号入库作为待爬取的公众号;

S12:精确匹配,即用户清楚待爬取的公众号的准确名字,通过精确键入公众号名称或者编号,直接入库,并作为待爬取的公众号。

进一步地,步骤S2所述的预设的爬虫匹配规则的设置方法为:通过scrapy框架爬取指定页面的HTML源码,并按照库结构和样式规则表,编写匹配规则;所述的待爬取公众号的相关信息包括待爬取公众号的编号、名称、发表的文章名称、发表的文章。

进一步地,步骤S3所述的入库处理就是进行加工和预处理,具体包括去重、按照指定格式编排、记录入库时间。

进一步地,步骤S4所述的定时执行时间设置为一天。

进一步地,步骤S5所述的显示公众号文章就是利用JavaWeb相关技术将本地存储公众号内容查询展示到前端页面上。

进一步地,数据源微信搜狗内部含有限制爬虫执行的机制,会过滤爬虫请求的机制,例如同一ip频繁访问会被禁止访问,所以必须满足以下条件才能正常执行爬虫:

P1:爬虫执行过程中需要不停切换浏览器头部信息,可以通过scrapy提供的内部api切换http请求头中包含的浏览器头部信息;

P2:爬虫执行间隔不能太短,由于需要获取的内容比较多,微信搜狗不允许短时间内发送多个请求,各个请求之间最好有一定的时间间隔,具体时间间隔自行调试;

P3:不同的爬虫尽量不要异步执行,虽然可以使用操作系统多线程执行,但由于网络带宽资源一定,异步执行爬虫会抢用带宽资源,导致意外发生。

P4:使用ip代理池,由于数据源微信搜狗具有禁止同一ip过度访问资源的机制,可以通过使用ip代理的方式来执行爬虫。

与现有技术相比,本发明技术方案的有益效果是:利用scrapy框架提供的爬虫技术爬取目标微信公众号的历史内容,且实现按天实时爬取,同步更新目标公众号的内容,并利用JavaWeb相关技术将本地存储公众号内容查询展示到前端页面上。

附图说明

图1为本发明实施例的流程图。

具体实施方式

附图仅用于示例性说明,不能理解为对本专利的限制;

为了更好说明本实施例,附图某些部件会有省略、放大或缩小,并不代表实际产品的尺寸;

对于本领域技术人员来说,附图中某些公知结构及其说明可能省略是可以理解的。

下面结合附图和实施例对本发明的技术方案做进一步的说明。

如图1所示,本实施例运用python3.5的环境,首先下载scrapy依赖包,运行scrapy 命令创建爬虫项目;其次安装python的编辑工具,用pip命令安装必要的函数依赖包。本发明一种爬取微信公众号信息的方法,具体实施步骤如下:

S1:根据用户输入,确定待爬取公众号名称,将待爬取公众号的编号入库;

S2:依照预设的爬虫匹配规则,根据公众号名称爬取待爬取公众号,得到待爬取公众号的相关信息;

S3:将爬虫获取的待爬取公众号相关信息进行入库处理,处理后的待爬取公众号的相关信息入库;

S4:设置爬虫定时执行时间,根据待爬取公众号的相关信息定时爬取待爬取待爬取公众号文章,将爬虫获取的公众号文章入库;

S5:显示公众号文章。

具体地,步骤S1具体包括以下两种情况:

S11:模糊匹配,即用户不清楚待爬取的公众号的准确名字,初步确定待爬取的公众号后,把其编号入库作为待爬取的公众号;

S12:精确匹配,即用户清楚待爬取的公众号的准确名字,通过精确键入公众号名称或者编号,直接入库,并作为待爬取的公众号。

具体地,步骤S2所述的预设的爬虫匹配规则的设定方法为:通过scrapy框架爬取指定页面的HTML源码,并按照库结构和样式规则表,编写匹配规则;所述的待爬取公众号的相关信息包括待爬取公众号的编号、名称、发表的文章名称、发表的文章。

具体地,步骤S3所述的入库处理就是进行加工和预处理,具体包括去重、按照指定格式编排、记录入库时间。

具体地,步骤S4所述的定时执行时间设置为一天。

具体地,步骤S5所述的显示公众号文章就是利用JavaWeb相关技术将本地存储公众号内容查询展示到前端页面上。

具体地,数据源微信搜狗内部含有限制爬虫执行的机制,会过滤爬虫请求的机制,例如同一ip频繁访问会被禁止访问,所以必须满足以下条件才能正常执行爬虫:

P1:爬虫执行过程中需要不停切换浏览器头部信息,可以通过scrapy提供的内部api切换http请求头中包含的浏览器头部信息;

P2:爬虫执行间隔不能太短,由于需要获取的内容比较多,微信搜狗不允许短时间内发送多个请求,各个请求之间最好有一定的时间间隔,具体时间间隔自行调试;

P3:不同的爬虫尽量不要异步执行,虽然可以使用操作系统多线程执行,但由于网络带宽资源一定,异步执行爬虫会抢用带宽资源,导致意外发生。

P4:使用ip代理池,由于数据源微信搜狗具有禁止同一ip过度访问资源的机制,可以通过使用ip代理的方式来执行爬虫。

具体地,本实施例采用mysql数据库来存储指数据,公众号搜索表有如下字段:

user: 用户名称,varchar类型;

wxName:公众号名称,varchar类型;

wxNo:公众号编号,varchar类型;

imgURL:公众号图片永久链接,varchar类型;

createDate:数据采集时间;

updateDate:数据更新时间;

wxNameURL:微信文章链接地址;

公众号细节表:detail

introduction: 文章介绍,varchar类型;

title:文章标题,varchar类型;

wxName:公众号名称,varchar类型;

wxNo:公众号编号,varchar类型;

createDate:数据采集时间,varchar类型

updateDate:数据更新时间,varchar类型;

wxNameURL:微信文章链接地址,varchar类型

contentLink:原文链接,varchar类型

html:网站文章内容html文本 media类型

相同或相似的标号对应相同或相似的部件;

附图中描述位置关系的用语仅用于示例性说明,不能理解为对本专利的限制;

显然,本发明的上述实施例仅仅是为清楚地说明本发明所作的举例,而并非是对本发明的实施方式的限定。对于所属领域的普通技术人员来说,在上述说明的基础上还可以做出其它不同形式的变化或变动。这里无需也无法对所有的实施方式予以穷举。凡在本发明的精神和原则之内所作的任何修改、等同替换和改进等,均应包含在本发明权利要求的保护范围之内。

python爬取微信公众号的几种方法_一种爬取微信公众号信息的方法与流程相关推荐

  1. 如何查看别人公众号自定义菜单的功能_如何注册自己的个人公众号?手把手教您开启自媒体赚钱之路?...

    1.自媒体如何赚钱的? 自媒体其实大家对它并不陌生,我们身边活着生活中很常见.最关键一点很多利用自媒体创业,并且收入年入百万的人不在少数.自媒体我给大家普及一下,"公民媒体"或&q ...

  2. python发微信提醒天气冷了注意保暖_天气转凉的微信问候语 寒潮来临注意保暖...

    濒临深秋,天气逐渐转凉了,你有没有什么话想对亲近的人说,让他体会一下你的关心.关于天气转凉的微信问候语有哪些你知道吗?一起来看看吧! 1.一周工作,相当繁忙,起早贪黑,经常加班.周末到来,为之疯狂,睡 ...

  3. 新版微信不停跳转到小程序_如何设置跳转微信小程序

    一.功能效果 手机网站常用模块:文本.图片.按钮支持设置点击跳转微信小程序. 可实现手机微信端下,打开手机网站可与微信小程序的实现相互跳转. 二.注意事项 [版本]展示中级版及以上版本支持开通. [条 ...

  4. 微信小程序订单管理源码_【程序源代码】微信小程序商城管理系统

    关键字:小程序 商城 管理系统  开发框架 正文 | 内容 01 - [微信小程序商城管理系统-视频介绍] 02 - [微信小程序商城管理系统-源码获取方式] [程序源代码]全端商城管理系统(后台+小 ...

  5. 微信签到抽奖程序java源码_某宝买的微信抽奖签到墙源码,年会,学习源码--已经配置完成了,源码没问题,可直接用...

    本帖最后由 没有星星的夜空 于 2020-1-6 15:46 编辑 老铁门都要18办内定的,那行,已经更新到蓝揍链接了,打开连接后看备注问题1.浏览器版本不兼容问题,在首页文件里面把注释去掉就好了 问 ...

  6. python网络通信的几种方式_两种方式,java=python,使用py4j进行通信

    我使用py4j实现python和java之间的通信,能够从java端调用python方法.但从python我不能发送任何对象或调用java方法.这是我试过的密码.在 我的java代码:public i ...

  7. python中两个集合的运算并交补_三种方式实现 Python 中的集合的交、并、补运算...

    文章目录 三种方式实现 Python 中的集合的交.并.补运算 一 背景 集合这个概念在我们高中阶段就有所了解,毕业已多年,我们一起回顾一下几个集合相关的基本概念吧? 集合是指具有某种特定性质的具体的 ...

  8. python帕多瓦数列前n项和的_几种求数列前n项和的方法

       1 1 1 1 1 1 1 1 n n n na q S a q a a q q q q              常见的数列的前 n 项和: , 1+3+5+ ...

  9. python简答题及答案查询公众号和软件_Python 抓取微信公众号账号信息的方法

    搜狗微信搜索提供两种类型的关键词搜索,一种是搜索公众号文章内容,另一种是直接搜索微信公众号.通过微信公众号搜索可以获取公众号的基本信息及最近发布的10条文章,今天来抓取一下微信公众号的账号信息 爬虫 ...

  10. python爱好者社区公众号历史文章合集_如何优雅的抓取微信公众号历史文章

    这是几天前在公众号上发的文章,主要讨论现在微信公众号文章抓取的一般思路以及优缺点,我不会讲技术细节,但我会分享别人已经开源的项目,你可以参考代码开了解其中的细节. 背景 微信公众号历史记录只可以通过客 ...

最新文章

  1. winform下通过webclient使用非流方式上传(post)数据和文件
  2. 2021-01-13 Matlab求解微分代数方程 (DAE)
  3. SQL Server 存储过程的应用
  4. 关于zookeeper中session timeout
  5. python函数调用外部变量_Python基础
  6. 买房应该少出首付,多贷款
  7. centos5.9 mysql_CentOS 5.9系统服务器使用yum安装Apache+PHP+MySQL环境
  8. hough变换连接边缘matlab,边缘检测与Hough变换实验报告 Matlab - 图文
  9. 面试分享系列 | 17道Python面试题,让你在求职中无往不利
  10. 2019校招Android面试题解1.0
  11. 使用pyspider框架抓取猫途鹰旅游信息
  12. 前端模块化发展(CommonJs、AMD、CMD、UMD、ESM)
  13. 一文入手 JUC(20+单元)
  14. 【懒懒的Python学习笔记五】
  15. 南大计算机学院在职博士,南京大学双证在职博士
  16. 搭建git服务器及利用git hook自动布署代码
  17. prometheus启动报错Unit prometheus.service entered failed state.
  18. 瑞典乐队ABBA回归
  19. 分享一些我个人学习Python的一些学习建议(附Python零基础学习资料)
  20. vs2008编译Xvid源代码 1.2.2版本

热门文章

  1. 异数OS 织梦师-云(五)-- 容器服务化,绿色拯救未来。
  2. CAD查找属性快文字
  3. android高仿ios控制中心,仿 iOS 11原生控制中心
  4. C语言学生档案表设计——作业
  5. Rayman的绝顶之路——Leetcode每日一题打卡20
  6. PHP如何判断图片是否伪造
  7. 图像分类基本流程及 KNN 分类器
  8. 对.Net 垃圾回收的C#编程相关方面(Finalize 和Dispose(bool disposing)和 Dispose())的一些理解体会(转)...
  9. 3GPP TS 29244-g30 中英文对照 | 5.2.6 Combined SGW/PGW Architecture
  10. 推挽与开漏输出详解(转)