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交互模式下如何开始运行(python交互界面的退出方法)
- python装饰器怎么编写(Python函数装饰器常见使用方法实例详解)
- python转换doc到pdf(利用python将图片版PDF转文字版PDF)
- python中if语句应学会什么(Python基础之条件控制操作示例if语句)
- pythonredis使用场景(python 通过SSHTunnelForwarder隧道连接redis的方法)
- python安装pil模板教程(详解python3安装pillow后报错没有pillow模块以及没有PIL模块问题解决)
- python实现的数据结构(Python嵌套式数据结构实例浅析)
- python的pickle用法(Python multiprocess pool模块报错pickling error问题解决方法分析)
- python与mysql的联系(MySQL和Python交互的示例)
- python中的reload(搞清楚 Python traceback的具体使用方法)
- python基础知识重点(python语言元素知识点详解)
- python爬虫开源代码(Python实现的文轩网爬虫完整示例)
- python使用pandas数据分析系列(python使用pandas处理大数据节省内存技巧推荐)
- python中递归方法(Python中最大递归深度值的探讨)
- python处理excel基础教程第3讲(Python Excel处理库openpyxl使用详解)
- python蓝牙knn算法(python使用KNN算法识别手写数字)
- 新晋小花被称女版吴卓羲 将取代滕丽名成为TVB新一代御用女警(新晋小花被称女版吴卓羲)
- 艺人吴卓羲10年警察生涯,演足10年阿Sir,系咩玩法(艺人吴卓羲10年警察生涯)
- 菲律宾潜水(菲律宾潜水价格)
- 泰国人妖(变性手术生殖器要割掉吗)
- 泰国美女(泰国人妖和女性如何区分)
- 泰国旅游业怎么样(泰国的旅游产业)
热门推荐
- php符串使用教程(php使用scandir函数扫描指定目录下所有文件示例)
- 日常操作docker命令(Docker常用命令详解)
- 自建FTP服务器并远程外网访问,花生棒自带端口映射3步搞定(自建FTP服务器并远程外网访问,花生棒自带端口映射3步搞定)
- python生成效果图(python如何制作缩略图)
- docker运行redis并操作(Docker安装MySQL和Redis的方法步骤)
- VS不生成.vhost.exe和.pdb文件
- php怎么创建一个文件(PHP文件后缀不强制为.php方法)
- 如何用python爬取最新电影(详解Python爬取并下载《电影天堂》3千多部电影)
- vue和springboot实战项目(vue+spring boot实现校验码功能)
- docker容器连接宿主机(docker 实现容器与宿主机无缝调用shell命令)
排行榜
- 1
- 2
- 3
- 4
- 5
- 6
- 7
- 8
- 9