香港云主机最佳企业级服务商!

ADSL拨号VPS包含了中国大陆(联通,移动,电信,)

中国香港,国外拨号VPS。

当前位置:云主机 > python >

电信ADSL拨号VPS
联通ADSL拨号VPS
移动ADSL拨号VPS

详解用python写网络爬虫-爬取新浪微博评论


时间:2022-04-02 10:35 作者:admin


新浪微博需要登录才能爬取,这里使用m.weibo.cn这个移动端网站即可实现简化操作,用这个访问可以直接得到的微博id。

分析新浪微博的评论获取方式得知,其采用动态加载。所以使用json模块解析json代码

单独编写了字符优化函数,解决微博评论中的嘈杂干扰字符

本函数是用python/' target='_blank'>python写网络爬虫的终极目的,所以采用函数化方式编写,方便后期优化和添加各种功能

# -*- coding:gbk -*-import reimport requestsimport jsonfrom lxml import html#测试微博4054483400791767comments=[]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-1def opt_comment(comment):  tree=html.fromstring(comment)  strcom=tree.xpath('string(.)')  reg1=r'回复@.*?:'  reg2=r'回覆@.*?:'  reg3=r'//@.*'  newstr=''  comment1=re.subn(reg1,newstr,strcom)[0]  comment2=re.subn(reg2,newstr,comment1)[0]  comment3=re.subn(reg3,newstr,comment2)[0]  return comment3def get_responses(id,page):  url="https://m.weibo.cn/api/comments/show?id={}&page={}".format(id,page)  response=requests.get(url)  return responsedef get_weibo_comments(response):  json_response=json.loads(response.text)  for i in range(0,len(json_response['data'])):    comment=opt_comment(json_response['data'][i]['text'])    comments.append(comment)weibo_id=input("输入微博id,自动返回前5页评论:")weibo_id=int(weibo_id)print('\n')page=get_page(weibo_id)for page in range(1,page+1):  response=get_responses(weibo_id,page)  get_weibo_comments(response)for com in comments:  print(com)print(len(comments))

以上所述是小编给大家介绍的Python爬取新浪微博评论详解整合,希望对大家有所帮助,如果大家有任何疑问请给我留言,小编会及时回复大家的。在此也非常感谢大家对脚本之家网站的支持!

(责任编辑:admin)






帮助中心
会员注册
找回密码
新闻中心
快捷通道
域名登录面板
虚机登录面板
云主机登录面板
关于我们
关于我们
联系我们
联系方式

售前咨询:17830004266(重庆移动)

企业QQ:383546523

《中华人民共和国工业和信息化部》 编号:ICP备00012341号

Copyright © 2002 -2018 香港云主机 版权所有
声明:香港云主机品牌标志、品牌吉祥物均已注册商标,版权所有,窃用必究

云官方微信

在线客服

  • 企业QQ: 点击这里给我发消息
  • 技术支持:383546523

  • 公司总台电话:17830004266(重庆移动)
  • 售前咨询热线:17830004266(重庆移动)