新浪微博需要登录才能爬取,这里使用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写网络爬虫-爬取新浪微博评论相关推荐

  1. python 打印对象的全部属性_详解:Python 面向对象静态方法、类方法、属性方法知识点小结...

    今天为大家带来的内容是介绍了Python 面向对象静态方法.类方法.属性方法,总结分析了Python 面向对象程序设计中静态方法.类方法.属性方法相关概念.知识点.操作技巧与使用注意事项,需要的朋友可 ...

  2. python解释器在哪里_详解查看Python解释器路径的两种方式

    进入python的安装目录, 查看python解释器 进入bin目录 # ls python(看一下是否有python解释器版本) # pwd (查看当前目录) 复制当前目录即可 1. 通过脚本查看 ...

  3. python selenium爬虫_详解基于python +Selenium的爬虫

    详解基于python +Selenium的爬虫 一.背景 1. Selenium Selenium 是一个用于web应用程序自动化测试的工具,直接运行在浏览器当中,支持chrome.firefox等主 ...

  4. 用python写网络爬虫-爬取新浪微博评论

    新浪微博需要登录才能爬取,这里使用m.weibo.cn这个移动端网站即可实现简化操作,用这个访问可以直接得到的微博id. 分析新浪微博的评论获取方式得知,其采用动态加载.所以使用json模块解析jso ...

  5. 用python3做学生管理系统_详解用python实现基本的学生管理系统(文件存储版)(python3)...

    详解用python实现基本的学生管理系统(文件存储版)(python3) 来源:中文源码网    浏览: 次    日期:2019年11月5日 详解用python实现基本的学生管理系统(文件存储版)( ...

  6. python编写数据库连接工具_详解使用Python写一个向数据库填充数据的小工具(推荐)...

    一. 背景 公司又要做一个新项目,是一个合作型项目,我们公司出web展示服务,合作伙伴线下提供展示数据. 而且本次项目是数据统计展示为主要功能,并没有研发对应的数据接入接口,所有展示数据源均来自数据库 ...

  7. python zxing 识别条码_详解利用python识别图片中的条码(pyzbar)及条码图片矫正和增强...

    前言 这周和大家分享如何用python识别图像里的条码.用到的库可以是zbar.希望西瓜6辛苦码的代码不要被盗了.(zxing的话,我一直没有装好,等装好之后再写一篇) 具体步骤 前期准备 用open ...

  8. 利用python处理dna序列_详解基于python的全局与局部序列比对的实现(DNA)

    程序能实现什么 a.完成gap值的自定义输入以及两条需比对序列的输入 b.完成得分矩阵的计算及输出 c.输出序列比对结果 d.使用matplotlib对得分矩阵路径的绘制 一.实现步骤 1.用户输入步 ...

  9. 用python写管理系统局域网_详解用python -m http.server搭一个简易的本地局域网

    工作时同事间几mb小文件的传输,一般使用QQ或者微信就足够了,但当传输文件几百MB或者几十G时,这种方法的效率就显得不足了.本篇就是简单说明一个python小功能,让大家能利用python方便的搭建一 ...

最新文章

  1. 【机器学习入门】(7) 线性回归算法:原理、公式推导、损失函数、似然函数、梯度下降
  2. mysql之存储引擎的选择
  3. mupdf不支持x64_x86平台转x64平台关于内联汇编不再支持的解决
  4. elasticsearch mapping之store
  5. Spring MVC报错:The request sent by the client was syntactically incorrect ()
  6. 3 linux禁用ssl_ESXI申请阿里云SSL证书并配置
  7. 耳机不支持android,安卓手机为什么不能用EarPods耳机 原因分析【图解】
  8. 20191208_神经网络交叉验证
  9. 密码学系列 - 双线性对
  10. 专业网速测试软件哪个好,网速测试软件哪个好?6款热门网速测试软件推荐
  11. Javassist学习总结1
  12. 电脑开机一直弹计算机的界面,电脑开机总是弹出登陆窗口的解决方法
  13. 洛谷P1338(末日的传说)
  14. 什么是md5码,md5码有什么用?
  15. 超详细的《使用腾讯云移动直播开发连麦》
  16. 如何开启电脑的远程开机和远程控制?
  17. List集合关于Stream的操作
  18. 在 JavaScript 中访问对象属性的 3 种方法
  19. check 和nocheck
  20. Orcal数据库中ORA-01861: 文字与格式字符串不匹配

热门文章

  1. 实时竞价的技术及行业展望
  2. EMW3080+STC15轻松实现设备上云4(阿里云物联网平台、智能生活开放平台)
  3. 第1140期AI100_机器学习日报(2017-11-01)
  4. python大数据就业方向_大数据专业未来的就业方向有哪些?[黑马程序员]
  5. chmod u+s权限理解
  6. Linux基础命令(管理工具)
  7. openresty ngx_lua请求响应
  8. 微信小程序Java登录流程(ssm实现具体功能和加解密隐私信息问题解决方案)...
  9. IT项目经理成长手记学习(一)
  10. python3 教程 下载图片资源