微信公众号阅读数抓取怎么做?微信公众号阅读数抓取对于运营微信公众号来说至关重要,所以有很多的微信公众号运营者想知道微信公众号阅读数抓取怎么做,以下是微信公众号阅读数抓取怎么做的内容了。
微信公众号阅读数抓取怎么做?
微信公众号阅读数抓取需要使用到爬虫技术哦。爬虫抓取微信公众号阅读数的步骤如下:
先抓取wxid(搜索要用到)
目标时间段分片 10天一次搜索(避免超过10页需要登录)
获得时间片内的记录数做分页
循环分页数拼接url携带代理请求
bs4分析网页内容 遇到验证码更换代理重新请求
正则匹配出列表页中的详情页链接 多线程请求阅读点赞
结果插入mysql
以上操作使用多进程提升速度。
微信公众号阅读数抓取的做法如下:
获取wxid
这里用selenium去获取配置文件的公众号的wxid
class Craw_openid:
__getWxIdApi =
"http://weixin.sogou.com/weixin?zhnss=1&type=1&ie=utf8&query="
__driver = webdriver.Chrome()
__wechatIds = wechatIds['wxId']
def __init__(self):
pass
def getWxId(self):
for x in self.__wechatIds:
url = self.__getWxIdApi + str(x[0])
self.__driver.get(url)
while (self.checkCaptcha(self.__driver.page_source) == False):
time.sleep(0.5)
reg = re.compile(r'"openid":"(.+?)"')
reg2 = re.compile(r'"sourcename":"(.+?)"')
wxId = re.findall(reg, self.__driver.page_source)[0]
try:
wxName = re.findall(reg2, self.__driver.page_source)[0]
except Exception as e:
wxName = ''
print "['%s' , '%s' , '%s' , '%s']," % (x[0], x[1] , wxId , wxName)
def checkCaptcha(self , content):
soup = bs4.BeautifulSoup(content, 'html.parser',
from_encoding='gb18030')
strs = soup.select('.s1')
if strs:
temp = re.compile(r'>(.*?)').findall(str(strs[0]))[0]
if temp == '您的访问出错了':
return False
else:
return True
else:
return True1234567891011121314151617181920212223242526272829303132
时间分段
这里我统计的是2016年的
def getBetweenDay(self):
for x in xrange(1, 13):
days = calendar.monthrange(self.__year, x)[1]
temp = str(x)
if len(temp) == 1:
temp = '0' + str(temp)
ss = str(days - 20)
if len(ss) == 1:
ss = '0' + ss
self.__dates.append({x: [str(self.__year) + '-' + temp + '-01',
str(self.__year) + '-' + temp + '-' + ss]})
self.__dates.append({x: [str(self.__year) + '-' + temp + '-' + str(days -
19), str(self.__year) + '-' + temp + '-' + str(days - 10)]})
self.__dates.append({x: [str(self.__year) + '-' + temp + '-' + str(days -
9), str(self.__year) + '-' + temp + '-' + str(days)]})
return self.__dates12345678910111213
微信文章数和阅读点赞
文章数即翻页列表数量的总数,阅读微信点赞可以替换详情页的前缀为getcomment
def getSee(self):
if self.__urlList:
self.__totalNum = len(self.__urlList)
for x in self.__urlList:
url = x.replace('mp.weixin.qq.com/s?src' ,
'mp.weixin.qq.com/mp/getcomment?src')
json = self.getContent(url)
readed = eval(json)['read_num']
liked = eval(json)['like_num']
if int(readed) >= 100000:
self.__highRead += 1
if readed > self.__topReaded:
self.__topReaded = readed
if liked > self.__topLiked:
self.__topLiked = liked
self.__readed += readed
self.__liked += liked12345678910111213141516
其他:
抓取的方法有很多,重点是sogou的反爬虫做得比较严格(毕竟是专业做搜索引擎的),所以要在代理上下一些功夫,如果抓取不需要阅读点赞,可以参考github上一个go语言写的中间人攻击的方法,不需要代理,但是有可能微信号被封。
微信公众号阅读数抓取怎么做呢?感谢大家的观看哦,微信公众号阅读数抓取的步骤都已经写在上方的内容中了哦,各位微信公众号运营者,您都学会了吗?大家请多关注微微号哦。
更多推荐:
如何采集抓取微信公众号文章内容阅读数?
怎么实现微信阅读数点赞数抓取?
微信群惊现关键字自动回复聊天机器人
我们是一家专业提供公众号交易、公众号迁移、公众号增粉、公众号买卖交易的平台,如果您有这方面的需求,。有任何疑问,可以
【立即咨询】
我们平台的客服或者添加微信号
【19008205409】
。此文章来源于网络,如有侵权,请联系删除