python如何微信增加文章阅读量(python如何微信增加文章阅读量的方法)
以下是关于python如何微信增加文章阅读量(python如何微信增加文章阅读量的方法)的介绍

本文目录


目前所知晓的能够抓取的方法有:
1、微信APP中微信公众号文章链接的直接抓取()
2、通过微信合作方搜狗搜索引擎(),发送相应请求来间接抓取
第1种方法中,这种链接不太好获取,而且他的规律不是特别清晰。
因此本文采用的是方法2----通过给 weixin.sogou.com发送即时请求来实时解析抓取数据并保存到本地。
1、首先在搜狗的微信搜索页面测试一下,这样能够让我们的思路更加清晰
在搜索引擎上使用微信公众号英文名进行“搜公众号”操作(因为公众号英文名是公众号唯一的,而中文名可能会有重复,同时公众号名字一定要完全正确,不然可能搜到很多东西,这样我们可以减少数据的筛选工作,只要找到这个唯一英文名对应的那条数据即可),即发送请求到';,并从页面中解析出搜索结果公众号对应的主页跳转链接。
使用request, urllib,urllib2,或者直接使用webdriver+phantomjs等都可以
这里使用的是request.get()的方法获取入口网页内容
self.headers={'User-Agent':'Mozilla/5.0(WindowsNT6.3;WOW64;rv:51.0)Gecko/20100101Firefox/51.0'}
#爬虫模拟在一个request.session中完成
#搜索入口地址,以公众为关键字搜索该公众号
defget_search_result_by_keywords(self):
self.log('搜索地址为:%s'%self.sogou_search_url)
returnself.s.get(self.sogou_search_url,headers=self.headers,timeout=self.timeout).content
从获取到的网页内容中,得到公众号主页地址,这一步骤有很多方法, beautifulsoup、webdriver,直接使用正则,pyquery等都可以
这里使用的是pyquery的方法来查找公众号主页入口地址
defget_wx_url_by_sougou_search_html(self,sougou_search_html):
#printdoc('p[class="tit"]')('a').attr('href')
#printdoc('div[class=img-box]')('a').attr('href')
#通过pyquery的方式处理网页内容,类似用beautifulsoup,但是pyquery和jQuery的方法类似,找到公众号主页地址
returndoc('div[class=txt-box]')('p[class=tit]')('a').attr('href')
首先需要加载公众号主页,这里用的是phantomjs+webdriver,因为这个主页的内容需要JS渲染加载,采用之前的方法只能获得静态的网页内容
#使用webdriver加载公众号主页内容,主要是js渲染的部分
defget_selenium_js_html(self,url):
html=browser.execute_script("returndocument.documentElement.outerHTML")
得到主页内容之后,获取文章列表,这个文章列表中有我们需要的内容
defparse_wx_articles_by_html(self,selenium_html):
print'开始查找内容msg'
returndoc('div[class="weui_media_boxappmsg"]')
#有的公众号仅仅有10篇文章,有的可能多一点
#returndoc('div[class="weui_msg_card"]')#公众号只有10篇文章文章的
5.解析每一个文章列表,获取我们需要的信息
包括文章名字,地址,简介,发表时间等
同时将上一步骤的内容保存成excel的格式
这样,每一步拆分完,爬取公众号的文章就不是特别难了。
sys.setdefaultencoding('utf-8')
#self.sogou_search_url='(self.kw)
self.sogou_search_url='(self.kw)
self.headers={'User-Agent':'Mozilla/5.0(WindowsNT10.0;WOW64;rv:47.0)Gecko/20100101FirePHP/0refox/47.0FirePHP/0.7.4.1'}
defget_search_result_by_kw(self):
self.log('搜索地址为:%s'%self.sogou_search_url)
returnself.s.get(self.sogou_search_url,headers=self.headers,timeout=self.timeout).content
defget_wx_url_by_sougou_search_html(self,sougou_search_html):
'根据返回sougou_search_html,从中获取公众号主页链接'
#printdoc('p[class="tit"]')('a').attr('href')
#printdoc('div[class=img-box]')('a').attr('href')
#通过pyquery的方式处理网页内容,类似用beautifulsoup,但是pyquery和jQuery的方法类似,找到公众号主页地址
returndoc('div[class=txt-box]')('p[class=tit]')('a').attr('href')
defget_selenium_js_html(self,wx_url):
'执行js渲染内容,并返回渲染后的html内容'
html=browser.execute_script("returndocument.documentElement.outerHTML")
defparse_wx_articles_by_html(self,selenium_html):
'从selenium_html中解析出微信公众号文章'
returndoc('div[class="weui_msg_card"]')
defswitch_arctiles_to_list(self,articles):
'把articles转换成数据字典'
self.log(u'开始整合(%d/%d)'%(i,len(articles)))
articles_list.append(self.parse_one_article(article))
defparse_one_article(self,article):
article=article('.weui_media_box[id]')
title=article('h4[class="weui_media_title"]').text()
self.log('标题是:%s'%title)
url='('h4[class="weui_media_title"]').attr('hrefs')
self.log('地址为:%s'%url)
summary=article('.weui_media_desc').text()
self.log('文章简述:%s'%summary)
date=article('.weui_media_extra_info').text()
self.log('发表时间为:%s'%date)
pic=self.parse_cover_pic(article)
content=self.parse_content_by_url(url).html()
contentfiletitle=self.kw+'/'+title+'_'+date+'.html'
self.save_content_file(contentfiletitle,content)
defparse_cover_pic(self,article):
pic=article('.weui_media_hd').attr('style')
p=re.compile(r'background-image:url(.∗?)')
self.log('封面图片是:%s'%rs[0]iflen(rs)>0else'')
returnrs[0]iflen(rs)>0else''
defparse_content_by_url(self,url):
page_html=self.get_selenium_js_html(url)
returnpq(page_html)('#js_content')
defsave_content_file(self,title,content):
withopen(title,'w')asf:
withopen(self.kw+'/'+self.kw+'.txt','w')asf:
printu'%s:%s'%(time.strftime('%Y-%m-%d%H:%M:%S'),msg)
defneed_verify(self,selenium_html):
'有时候对方会封锁ip,这里做一下判断,检测html中是否包含id=verify_change的标签,有的话,代表被重定向了,提醒过一阵子重试'
returnpq(selenium_html)('#verify_change').text()!=''
#Step0:创建公众号命名的文件夹
#Step1:GET请求到搜狗微信引擎,以微信公众号英文名称作为查询关键字
self.log(u'开始获取,微信公众号英文名为:%s'%self.kw)
self.log(u'开始调用sougou搜索引擎')
sougou_search_html=self.get_search_result_by_kw()
#Step2:从搜索结果页中解析出公众号主页链接
self.log(u'获取sougou_search_html成功,开始抓取公众号对应的主页wx_url')
wx_url=self.get_wx_url_by_sougou_search_html(sougou_search_html)
self.log(u'获取wx_url成功,%s'%wx_url)
#Step3:Selenium+PhantomJs获取js异步加载渲染后的html
self.log(u'开始调用selenium渲染html')
selenium_html=self.get_selenium_js_html(wx_url)
#Step4:检测目标网站是否进行了封锁
ifself.need_verify(selenium_html):
self.log(u'爬虫被目标网站封锁,请稍后再试')
#Step5:使用PyQuery,从Step3获取的html中解析出公众号文章列表的数据
self.log(u'调用selenium渲染html完成,开始解析公众号文章')
articles=self.parse_wx_articles_by_html(selenium_html)
self.log(u'抓取到微信文章%d篇'%len(articles))
#Step6:把微信文章数据封装成字典的list
self.log(u'开始整合微信文章数据为字典')
articles_list=self.switch_arctiles_to_list(articles)
#Step7:把Step5的字典list转换为Json
self.log(u'整合完成,开始转换为json')
data_json=json.dumps(articles_list)
self.log(u'转换为json完成,开始保存json数据到文件')
self.log(u'保存完成,程序结束')
if__name__=='__main__':
gongzhonghao=raw_input(u'输入要爬取的公众号')
gongzhonghao='python6359'
weixin_spider(gongzhonghao).run()
对代码进行了一些优化和整改,主要:
本程序已知缺陷:如果公众号的文章内容包括视视频,可能会报错。
二、如何提高微信公众号运营现今,微信已成为人人必备的手机软件,而微信公众号在这么庞大的微信用户推动下也可以成为一种主流的线上线下互动营销平台。现在我们就某一微信公众号收集的相关数据信息分析下该微信公众号运营过程中存在的业务问题。
首先,对于该公众号分析有哪些指标
本次将从文章分析、消息分析、菜单分析、用户分析四个方面来对该微信公众号的业务进行分析
首先通过阅读量、转发量、留言量进行分析
1)业务问题:从所给的公众号数据中找出阅读量最高的30篇文章是哪些?
根据统计可以看出阅读量排名前30的文章标题涉及数据分析学习、知识众筹、转行经验、面试经验以及投资等话题,建议以后推送的话题多涉及这些方面。同时,阅读量高的文章的标题多存在疑问句吸引读者的兴趣,可以抓住这一小小技巧。
2)业务问题:找出转发量前30篇、后30篇的文章是哪些?找出用户留言最多的几篇文章是哪些?并给出建议
相对于阅读量,转发量更能衡量一篇文章的质量,因为只有用户真正喜欢并接受文章的观点才会转发到朋友圈。从转发量最高的30篇文章标题可以看出,关于数据分析学习用书、工具、面试的干货贴,关于赚钱、投资的科普贴,关于如何高效学习的指导贴用户的转发量高,说明关注的用户是一群奋发向上的年轻人,他们渴望通过进一步的学习提升自我。公众号博主可以继续就以上这些方面写作以吸引更多的用户。
由转发量最少的30篇文章得出,关于社群活动,话题宽泛的鸡汤贴,和其他用户没有产生共鸣的转行个人贴用户不太会主动分享转发。
由留言数最多的30篇文章可看出,关于社群活动的知识众筹留言数最多,这很好理解因为该群是一个数据分析学习群。其次关于吃苦、被高中生打败、制作简历、人生中的重要问题等话题引起用户的共鸣,从而引发用户纷纷留言。从中可以看出推送一些接地气、能引发共鸣的文章能获得较高的留言数。
其次,通过对用户留存变化(当日净增量,当日掉粉量,当日增粉量)进行分析
1)业务问题:当日净增量最大是哪几天?当日掉粉量最多的是哪几天?用户最近一年每个月是增长还是下降?未来是增长还是下降?
由当日净增量变化图可知当日净增量高的文章大部分在2018年3月、4月和5月发布,其中最高的一篇是在2018.3.15日发布的名为“买房后,我变成了穷光蛋”一文。将当日净增量最多的30篇文章与转发量最多的30篇文章比较可得知,这两者的重合率不到25%,由此可见当日净增长量由文章转发量引起的原因不大,有很大的可能是用户是从其他渠道(知乎)吸引过来的。所以可将文章发布在不同的网站上以吸引更多用户的关注。
当日掉粉量最多的一天是2018.4.21日发布的一篇“像软银CEO孙正义一样去思考做事”,可能软银CEO大家并不熟知,对于他怎样思考做事大家并不买账。分析掉粉原因首先标题不够吸引,其次也有可能内容不是大家喜欢的。
由上图可知每月涨粉量一直高于掉粉量,因此每月新增用户一直在增长,这样的趋势预示着未来的用户数量也是持续增长的。自2018.2月-2018.5月用户数量大幅上升,推测可能春节期间很多人利用假期思考转行或学习新技能提升自我。
总结上述分析,对微信公众号菜单栏提出的建议有:
1.针对知识众筹、数据分析学习、投资理财这些用户比较关注和感兴趣的内容设计板块,并将一些高质量的文章在各板块顶置,提升用户体验
2.在文章写作方面,结合社会热点、明星成功人士其自身存在的特点进行突出,能够吸引更多用户关注;写一些和大部分用户能产生共鸣的话题,能大大提升用户的参与,即留言数增加
3.在一些特定的时间点如春节,多多推送一些关于数据分析学习的干货资料能吸引一些准备转行用户的关注
业务问题:微信公众号后台用户留言最多的是哪些词汇?
将用户向公众号中发送全部消息的TOP200关键词绘制成词云图如下
词云图显示,用户更多关注资料、猴子、数据分析、初级、社群等关键词。可对这类高频词设置自动回复,及时给用户引导,提高用户体验。
该公众号在2017.6.14-2018.6.19期间更新了若干版本,且每一版本包含三个一级菜单和若干二级菜单。其中一级菜单包括动态模块(每一版本有不同的对应主题,如改变命运、业务面试等)、赚钱社群、知识众筹三个模块。在赚钱社群模块下又有若干二级菜单。接下来通过用户点击菜单栏的次数对菜单栏的设计和布置进行改进
对一级菜单点击次数点击人数分析,发现赚钱社群的累积点击次数高于动态模块,而动态模块高于知识众筹。查看源数据发现赚钱社群的二级菜单有数据分析的相关课程。动态模块由于不断更新内容引发用户点击,而知识众筹模块这部分文章比较固定没有太大的更新导致参与人数也就下降了。
对赚钱社群下的二级菜单累积点击次数统计可发现,数据分析python、免费试听、GAFATA股票定投、数据分析(初级)、数据分析、数据分析R这几个二级菜单的累积点击次数最多。
对一级菜单中的动态模块累积点击次数前30的话题统计可看出,关于升职加薪、2018年机会、转行金融这些话题累积点击次数排名前3,可见关注的用户是一些想通过转行达到升职加薪的目标。
通过以上分析,对菜单栏的设计和布置提出的建议有:
1.在动态模块下多更新与求职、面试、投资有关的干货知识以吸引更多用户的关注点击
2.在知识众筹模块下多更新些时下比较关注的话题
3.继续保持赚钱社群下关于数据分析学习这部分内容的优势
用户是业务分析中非常重要的对象,分析用户通常从获取用户(Acquisition),激活用户(Activation),留存用户(Retention),获取收入(Revenue),用户推荐(Referral)五个方面入手,简称为AARRR模型,如图所示:
(一)获取用户(Acquisition)获取用户是指用户是怎么发现并来到你的产品。通过上述分析我们定位该微信公众号的用户是一群对数据分析感兴趣想转行到数据分析行业的人士或无工作经验的应届毕业生,那么这群人必定会通过各种搜索引擎和APP查询有关数据分析的相关知识,其中必用的软件有百度、google、知乎、贴吧、各大学习交流论坛。可以在以上部分软件开设相关的免费体验课程以吸引用户。
激活用户就是让用户能真正使用产品,从而给他们带来完美的首次体验,让他们自己发现产品的亮点。而不同产品对于用户活跃度的定义不同,对于指导学习的微信公众号当然是希望用户能每天登陆、留言、转发。对于提升用户活跃度给出的建议有:将公众号的一级菜单的各部分精华内容顶置,利于转发传播。给用户推送他们喜欢看的想要看的能引起共鸣的话题利于提高留言数。(三)留存用户(Retention)
在解决了用户活跃的问题之后,还需要解决的一个问题是如何留住用户,并且我们要知道获取一个新用户的成本总是高于留住一个老用户,所以提高用户留存才是维持产品价值,延长生命周期的重要手段。留存用户就是让用户重复使用产品,让产品产生粘性。对于微信公众号针对不同时期用户的运营提出的建议有:
1.对于刚关注的新用户,要理解他们的关注动机,有可能是查找数据分析的学习规划路线,有可能是报名学习初级课程,也有可能是查找学习资料,不管怎么样都应该将这部分的内容入口做得浅些,提高用户体验。同时设计答疑模块或制作之前新用户提出的高频问题及其解答方便之后用户参考。也可以设计免费体验课程让新用户感受到课程的特色和魅力。
2.对于老用户,可以其在答疑区解疑形成良好的互动并给与一定的积分奖励,也可以一些优秀的用户就他们自身的学习、面试、工作谈谈经验并给与一定的现金奖励。
(四)获取收入(Revenue)获取收入就是如何通过产品的业务来实现收入的增加,目前该公众号收入的主要途径是让用户付费加入学习社群或购买课程live。建议行业成功人士在知乎Live上或微信直播平台上进行课程直播并将相关的付费直播内容预告推送给用户。
(五)用户推荐(Referral)用户推荐就是使用过产品的用户愿意推荐给其他用户。在这里文章转发量是一个很好的衡量用户推荐的指标。要使文章被转发首先需做到文章条理清晰、干货满满,其次在文章的结尾有易于分享转发的标志,最后我们可以来一个分享集赞抵付费直播门票等活动。
以上是对微信公众号运营情况进行的相关分析,现总结如下:
OK,本文到此结束,希望对大家有所帮助。
关于更多python如何微信增加文章阅读量(python如何微信增加文章阅读量的方法)请留言或者咨询老师
文档于 2025-11-04 11:58:34 修改

mip.xncswj.com