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


Posted in Python onMay 10, 2019

新浪微博需要登录才能爬取,这里使用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'回覆@.*?:'
  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 comment3

def get_responses(id,page):
  url="https://m.weibo.cn/api/comments/show?id={}&page={}".format(id,page)
  response=requests.get(url)
  return response

def 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爬取新浪微博评论详解整合,希望对大家有所帮助,如果大家有任何疑问请给我留言,小编会及时回复大家的。在此也非常感谢大家对三水点靠木网站的支持!

Python 相关文章推荐
给Python初学者的一些编程技巧
Apr 03 Python
简单介绍Python中的decode()方法的使用
May 18 Python
Python中return语句用法实例分析
Aug 04 Python
django model去掉unique_together报错的解决方案
Oct 18 Python
pygame实现简易飞机大战
Sep 11 Python
python try except 捕获所有异常的实例
Oct 18 Python
python实现一个简单的udp通信的示例代码
Feb 01 Python
python 实现将list转成字符串,中间用空格隔开
Dec 25 Python
解决python 找不到module的问题
Feb 12 Python
python实现人像动漫化的示例代码
May 17 Python
python的flask框架难学吗
Jul 31 Python
总结几个非常实用的Python库
Jun 26 Python
python的turtle库使用详解
May 10 #Python
详解Python sys.argv使用方法
May 10 #Python
Python3.5 + sklearn利用SVM自动识别字母验证码方法示例
May 10 #Python
python lxml中etree的简单应用
May 10 #Python
基于Python的PIL库学习详解
May 10 #Python
python导入坐标点的具体操作
May 10 #Python
python简单验证码识别的实现方法
May 10 #Python
You might like
php学习之 认清变量的作用范围
2010/01/26 PHP
php上的memcache和memcached两个pecl库
2010/03/29 PHP
jQuery 选择器、DOM操作、事件、动画
2010/11/25 Javascript
JQuery 1.3.2以上版本中出现pareseerror错误的解决方法
2011/01/11 Javascript
Extjs EditorGridPanel中ComboBox列的显示问题
2011/07/04 Javascript
可自己添加html的伪弹出框实现代码
2013/09/08 Javascript
最精简的JavaScript实现鼠标拖动效果的方法
2015/05/11 Javascript
vue获取DOM元素并设置属性的两种实现方法
2017/09/30 Javascript
Vue EventBus自定义组件事件传递
2018/06/25 Javascript
Vue表单及表单绑定方法
2018/09/04 Javascript
微信小程序实现打卡日历功能
2020/09/21 Javascript
vue实现新闻展示页的步骤详解
2019/04/11 Javascript
vue路由跳转传递参数的方式总结
2020/05/10 Javascript
iview实现动态表单和自定义验证时间段重叠
2021/01/10 Javascript
[33:42]LGD vs OG 2018国际邀请赛小组赛BO2 第一场 8.16
2018/08/17 DOTA
python strip() 函数和 split() 函数的详解及实例
2017/02/03 Python
python处理csv中的空值方法
2018/06/22 Python
python: 自动安装缺失库文件的方法
2018/10/22 Python
Python绘制三角函数图(sin\cos\tan)并标注特定范围的例子
2019/12/04 Python
python wxpython 实现界面跳转功能
2019/12/17 Python
Python集成开发工具Pycharm的安装和使用详解
2020/03/18 Python
python plt可视化——打印特殊符号和制作图例代码
2020/04/17 Python
WoolOvers澳洲官方网站:英国针织服装公司
2018/05/13 全球购物
非常详细的C#面试题集
2016/07/13 面试题
最新销售员个人自荐信
2013/09/21 职场文书
餐饮主管岗位职责
2013/12/10 职场文书
工作表扬信的范文
2014/01/10 职场文书
模具专业毕业生自荐书范文
2014/02/19 职场文书
培训班开班仪式主持词
2014/03/28 职场文书
合作经营协议书范本
2014/04/17 职场文书
红色旅游心得体会
2014/09/03 职场文书
个人剖析材料及整改措施
2014/10/07 职场文书
征求意见函
2015/06/05 职场文书
事业单位工作人员岗前培训心得体会
2016/01/08 职场文书
年中了,该如何写好个人述职报告?
2019/07/02 职场文书
numpy array找出符合条件的数并赋值的示例代码
2022/06/01 Python