python爬虫爬取知乎(详解用python写网络爬虫-爬取新浪微博评论)
类别:脚本大全 浏览量:1465
时间:2021-10-01 01:58:08 python爬虫爬取知乎
详解用python写网络爬虫-爬取新浪微博评论新浪微博需要登录才能爬取,这里使用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爬取新浪微博评论详解整合,希望对大家有所帮助,如果大家有任何疑问请给我留言,小编会及时回复大家的。在此也非常感谢大家对开心学习网网站的支持!
原文链接:https://blog.csdn.net/Joliph/article/details/77334354
您可能感兴趣
- python 多进程的启动和停止(Python3.5多进程原理与用法实例分析)
- python中if条件语句如何使用(对python中if语句的真假判断实例详解)
- python 制作图片文字识别(如何使用Python进行OCR识别图片中的文字)
- python程序开发过程(python调用外部程序的实操步骤)
- python面向对象的介绍(Python面向对象思想与应用入门教程类与对象)
- 如何用python在微信里自动回复(Python实现微信自动好友验证,自动回复,发送群聊链接方法)
- pythondatetime库详解(python使用time、datetime返回工作日列表实例代码)
- python中对象方法和顶级方法(Python3.5面向对象程序设计之类的继承和多态详解)
- pythonopencv自定义阈值算法(理想高通滤波实现Python opencv示例)
- python3.7.2 详细安装教程(python3.5安装python3-tk详解)
- python常用的字符串操作方法(Python字符串的常见操作实例小结)
- python爬虫并保存excel实例(Python实现爬取亚马逊数据并打印出Excel文件操作示例)
- python蓝牙knn算法(python使用KNN算法识别手写数字)
- python3简单编程(Python3.5面向对象编程图文与实例详解)
- python 导入指定文件夹的模块(Python实现的在特定目录下导入模块功能分析)
- eclipse配置python(eclipse创建python项目步骤详解)
- 冯骥才 年意(冯骥才年意)
- ()
- 百事大吉蓝底 绿底手机高清壁纸(绿底手机高清壁纸)
- 蓝底证件照怎么制作 证件照换底色 换尺寸快速搞定(蓝底证件照怎么制作)
- 你喜欢足球吗 足球如何点亮世界的(足球如何点亮世界的)
- 不可分鸽是什么梗(不可分鸽是什么梗)
热门推荐
- php入门教程源代码修改教程(php+js实现的无刷新下载文件功能示例)
- tick数据间隔时间为2秒(让你一看就明白的$nextTick讲解)
- sql server 报错(sql server利用不同语种语言显示报错错误消息的方法示例)
- reactredux任务处理进度(一文搞懂redux在react中的初步用法)
- CSS中overflow的用法
- h5禁用返回键(可能这些是你想要的H5软键盘兼容方案小结)
- extjs tabPanel的用法
- css position详解(深究CSS定位position的常用技法)
- sqlserver2000安装之后在哪打开(SQL2000安装后,SQL Server组无项目解决方法)
- 开源asp.net(apache下支持asp.net的实现方法)
排行榜
- 1
- 2
- 3
- 4
- 5
- 6
- 7
- 8
- 9