新浪微博需要登录才能爬取,这里使用m.weibo.cn这个移动端网站即可实现简化操作,用这个访问可以直接得到的微博id。
分析新浪微博的评论获取方式得知,其采用动态加载。所以使用json模块解析json代码
单独编写了字符优化函数,解决微博评论中的嘈杂干扰字符
本函数是用python写网络爬虫的终极目的,所以采用函数化方式编写,方便后期优化和添加各种功能
# -*- coding:gbk -*-
import re
import requests
import json
from lxml import html
#测试微博4054483400791767
comments=[]
def get_page(weibo_id):
url='https://m.weibo.cn/status/{}'.format(weibo_id)
html=requests.get(url).text
regcount=r'"comments_count": (.*?),'
comments_count=re.findall(regcount,html)[-1]
comments_count_number=int(comments_count)
page=int(comments_count_number/10)
return page-1
def opt_comment(comment):
tree=html.fromstring(comment)
strcom=tree.xpath('string(.)')
reg1=r'回复@.*?:'
reg2=r