详解用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 26 Python
python中的函数用法入门教程
Sep 02 Python
教大家使用Python SqlAlchemy
Feb 12 Python
Python 基础知识之字符串处理
Jan 06 Python
python-opencv颜色提取分割方法
Dec 08 Python
Django REST framework视图的用法
Jan 16 Python
python中while和for的区别总结
Jun 28 Python
tensorflow入门:tfrecord 和tf.data.TFRecordDataset的使用
Jan 20 Python
python 生成器需注意的小问题
Sep 29 Python
python3中calendar返回某一时间点实例讲解
Nov 18 Python
Python 实现进度条的六种方式
Jan 06 Python
使用pandas生成/读取csv文件的方法实例
Jul 09 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版(1)
2006/10/09 PHP
新浪微博API开发简介之用户授权(PHP基础篇)
2011/09/25 PHP
php中simplexml_load_string使用实例分享
2014/02/13 PHP
php分页代码学习示例分享
2014/02/20 PHP
PHP中提问频率最高的11个面试题和答案
2014/09/02 PHP
微信支付开发订单查询实例
2016/07/12 PHP
如何快速的呈现我们的网页的技巧整理
2007/07/01 Javascript
ExtJS扩展 垂直tabLayout实现代码
2009/06/21 Javascript
jquery不会自动回收xmlHttpRequest对象 导致了内存溢出
2012/06/18 Javascript
Jquery 自定义动画概述及示例
2013/03/29 Javascript
jQuery实现渐变下拉菜单的简单方法
2015/03/11 Javascript
jQuery实现点击小图显示大图代码分享
2015/08/25 Javascript
基于javascript实现简单的抽奖系统
2020/04/15 Javascript
jQuery获取访问者IP地址的方法(基于新浪API与QQ查询接口)
2016/05/25 Javascript
Vue.js框架路由使用方法实例详解
2017/08/25 Javascript
Angularjs渲染的 using 指令的星级评分系统示例
2017/11/09 Javascript
JQuery实现简单的复选框树形结构图示例【附源码下载】
2019/07/16 jQuery
浅谈vue 锚点指令v-anchor的使用
2019/11/13 Javascript
Python生成不重复随机值的方法
2015/05/11 Python
讲解Python中fileno()方法的使用
2015/05/24 Python
python机器学习理论与实战(五)支持向量机
2018/01/19 Python
Python3 关于pycharm自动导入包快捷设置的方法
2019/01/16 Python
Windows下pycharm创建Django 项目(虚拟环境)过程解析
2019/09/16 Python
Python Pickle 实现在同一个文件中序列化多个对象
2019/12/30 Python
Anaconda的安装及其环境变量的配置详解
2020/04/22 Python
美国时尚女装在线:Missguided
2016/12/03 全球购物
美国时尚大码女装购物网站:Avenue
2019/05/24 全球购物
本科毕业自我鉴定
2014/03/20 职场文书
2014年寒假社会实践活动心得体会
2014/04/07 职场文书
安全生产目标责任书
2014/04/14 职场文书
学校党的群众路线教育实践活动对照检查材料
2014/09/24 职场文书
招商引资工作汇报材料
2014/10/28 职场文书
幼儿园园长个人总结
2015/03/02 职场文书
车间班组长竞聘书
2015/09/15 职场文书
幼儿园托班开学寄语(2016秋季)
2015/12/03 职场文书
pytorch 如何把图像数据集进行划分成train,test和val
2021/05/31 Python