点击上方 “蓝字” 关注,学习生活两不误

点击上方“python学习专栏”,选择“置顶公众号”

干货、福利第一时间送达!

文末有 word版获取方式

日常刷知乎,我是一个爱学习的人

今天让我看到了一条,有哪些比较新的土味情话?

对于钢铁直男而言,这是新大陆啊

学起来

乍一看,很多大佬回答了,还挺多。

于是乎,我决定去将这些土味情话保存下来

以备不时之需

所以,这篇文章就面世,收集 土味情话

当然了,对于一个学习python的我,就算是爬虫技术一般般

对于爬取知乎的评论还是能够轻松做到的

一步一步

1、分析知乎页面

2、分析链接

3、获取评论

4、保存到word文档

1、分析知乎页面

给出链接 https://www.zhihu.com/question/293527229

我们直接使用浏览器自带的 抓包工具

点击F12,或者右键 点击 审查元素(360浏览器)

然后刷新一下页面,按照下图依次点击

点击到3 时刷新一下页面,然后往下拉网页页面,

知道4所示字段出现,点击,点击5, 复制6 所示的链接

2、分析链接

由于 知乎采用的是动态返回数据

我们不可能由一个链接来得到我们要的全部数据

再次滑动页面获取一个 和上面字段一样的header中的链接

看看两个链接的不同之处,就是关注limit 和 offset ,这个的意思是

每次获取5条评论(limit),offset 是现在获取到多少条

也就是 第一次 是 0-5,第二次是6-10

url = 'https://www.zhihu.com/api/v4/questions/293527229/answers?include=data%5B*%5D.is_normal%2Cadmin_closed_comment%2Creward_info%2Cis_collapsed%2Cannotation_action%2Cannotation_detail%2Ccollapse_reason%2Cis_sticky%2Ccollapsed_by%2Csuggest_edit%2Ccomment_count%2Ccan_comment%2Ccontent%2Ceditable_content%2Cvoteup_count%2Creshipment_settings%2Ccomment_permission%2Ccreated_time%2Cupdated_time%2Creview_info%2Crelevant_info%2Cquestion%2Cexcerpt%2Crelationship.is_authorized%2Cis_author%2Cvoting%2Cis_thanked%2Cis_nothelp%2Cis_labeled%2Cis_recognized%2Cpaid_info%2Cpaid_info_content%3Bdata%5B*%5D.mark_infos%5B*%5D.url%3Bdata%5B*%5D.author.follower_count%2Cbadge%5B*%5D.topics&offset= {}&limit=5&sort_by=default&platform=desktop'.format(str(i))

只要在这里对 offset进行改变即可

3、获取评论

使用我们获取的链接打开,获取的是json 数据

这里我们需要使用 json.loads 转化为python的数据类型,字典

import requestsimport jsonresponse = requests.get(url=url, headers=headers)res = json.loads(response.content.decode())soup = BeautifulSoup(res['data'][0]['content'], 'lxml')

res['data'][0]['content'] 这里面就是评论的内容

这些数据是以 网页代码形式存储的

我们需要转为html ,然后获取内容

soup = BeautifulSoup(res['data'][0]['content'], 'lxml')con = soup.select('p')  #获取p标签con.get_text()  #获取文本

4、存储为word文档

这里需要使用到 docx库

pip install python-docx #安装

from docx import Documentfrom docx.enum.text import WD_ALIGN_PARAGRAPHdocument = Document() #创建 word处理document.add_heading('Document Title', 0) #插入标题p = document.add_paragraph('123456789\n') #插入段落p.alignment = WD_ALIGN_PARAGRAPH.CENTER #居中对齐

想要更多的了解这个库,可以到官网学习

https://python-docx.readthedocs.io/en/latest/index.html

完整代码

def request_data(num):headers = {'accept': 'text/html,application/xhtml+xml,application/xml;q=0.9,image/webp,image/apng,*/*;q=0.8','user-agent': 'Mozilla/5.0 (Windows NT 10.0; WOW64) AppleWebKit/537.36 (KHTML, like Gecko) Chrome/68.0.3440.106 Safari/537.36',}print('回答数量=', num)document = Document()document.add_heading('土味情话', 0) #插入标题document.add_heading('来源于知乎', 2) #插入标题for i in range(0,num,5):print('请求了 {} 回答'.format(i))url = 'https://www.zhihu.com/api/v4/questions/293527229/answers?include=data%5B*%5D.is_normal%2Cadmin_closed_comment%2Creward_info%2Cis_collapsed%2Cannotation_action%2Cannotation_detail%2Ccollapse_reason%2Cis_sticky%2Ccollapsed_by%2Csuggest_edit%2Ccomment_count%2Ccan_comment%2Ccontent%2Ceditable_content%2Cvoteup_count%2Creshipment_settings%2Ccomment_permission%2Ccreated_time%2Cupdated_time%2Creview_info%2Crelevant_info%2Cquestion%2Cexcerpt%2Crelationship.is_authorized%2Cis_author%2Cvoting%2Cis_thanked%2Cis_nothelp%2Cis_labeled%2Cis_recognized%2Cpaid_info%2Cpaid_info_content%3Bdata%5B*%5D.mark_infos%5B*%5D.url%3Bdata%5B*%5D.author.follower_count%2Cbadge%5B*%5D.topics&offset={}&limit=5&sort_by=default&platform=desktop'.format(str(i))response = requests.get(url=url, headers=headers)res = json.loads(response.content.decode())for content in res['data']:document.add_heading('作者:{},点赞人数:{}'.format(content['author']['name'], content['voteup_count']), 0) #插入标题soup = BeautifulSoup(content['content'], 'lxml')#大致看了一下,评论的内容有两类标签if len(soup.select('blockquote')) > 5: #回答小于5 则过滤掉for text in soup.select('blockquote'):pare = document.add_paragraph(text.get_text()) #插入段落pare.alignment = WD_ALIGN_PARAGRAPH.CENTER #中间对齐elif len(soup.select('p')):for text in soup.select('p'):pare = document.add_paragraph(text.get_text())pare.alignment = WD_ALIGN_PARAGRAPH.CENTERdocument.save('土味情话3.docx')if __name__ == '__main__':num = int(input('输入想获取的数量')) #这里是指评论的数量,并不是情话数量request_data(260)

看完了,记得点在看

关注公众号

回复:土味情话

即可获取,5000句word完整版土味情话

end

长按识别二维码关注

python土味情话_python教你谈恋爱-之-土味情话5000条相关推荐

  1. python核心理念_Python 之父谈放弃 Python:我对核心成员们失望至极!

    Python 之父讲述退位原因,以及 Python 的未来将何去何从. 在 Python 社区,Python 的发明者 Guido Van Rossum 被称为 "仁慈的终生独裁者" ...

  2. python主题壁纸_Python教你如何下载你喜欢的桌面壁纸

    相关知识 1.URL处理模块(库) import urllib.request as req 2.创建一个表示远程url的类文件对象 req.urlopen(' ') 3.导入re包(正规表达式包) ...

  3. python def函数_Python教程之Lambda表达式知识概述

    在Python中,除了def之外,还提供了一种生成函数对象的表达式形式,即Lambda表达式,它可以创建小的匿名函数,起到一个函数速写的作用.接下来的好程序员Python学习课程就给大家分享Lambd ...

  4. python实现新闻网站_Python 教你 4 行代码开发新闻网站通用爬虫

    ​ GNE(GeneralNewsExtractor)是一个通用新闻网站正文抽取模块,输入一篇新闻网页的 HTML, 输出正文内容.标题.作者.发布时间.正文中的图片地址和正文所在的标签源代码.GNE ...

  5. python画树干_python教你画一棵树

    最近不少读者对 python 的 turtle 库比较感兴趣, 用python画一朵玫瑰给你 ,之前也写了一篇文章讲过如何画一朵玫瑰花.今天在知乎上找了一个用 turtle 画树的 python 程序 ...

  6. 学python去吧_Python教父推荐的一份Python学习清单,秀儿拿走学去吧,最适合你

    站在风口上,猪都能飞起来.人工智能风口,让Pyhon这门胶水语言转变成非常火的网红语言. 编程功力深厚的程序员花一两个星期就能上手Python,而一些新手程序员花几个月就可以上手. 学编程,用Pyth ...

  7. python如何表白_python教你520如何表白女神

    1.引言 作为一名资深程序单身狗,每天也在想着如何脱单成功,思来想去,能在花费最小代价下把妹成功的方法就是写一个表白程序了,认识我的人在看了以下内容肯定会说没想到你是这样一个闷骚的男人,我只想对你们说 ...

  8. 计算机python指什么_python之浅谈计算机基础

    目录 一.计算机基础之编程 什么是编程语言 什么是编程 为什么要编程 二.计算机组成原理 1. 计算机五大组成 CPU 存储器 输入设备 输出设备 2.计算机五大部分补充 CPU相关 应用程序启动流程 ...

  9. 【ChatGPT情商大考验】ChatGPT教我谈恋爱

    ❤️觉得内容不错的话,欢迎点赞收藏加关注

最新文章

  1. Qt 打印时间 毫秒级
  2. feign调用如何传递token_feign加入熔断器之后转发不了token等header信息
  3. 腾讯微博发表带图片的微博
  4. Jenkins配置与使用
  5. USB-WiFi在x210板子上的移植
  6. 在 Windows 7 中禁用IPv6协议/IPv6隧道
  7. linux drbd同步,DRBD数据镜像主备节点同步数据
  8. 体检异常率98%?数据分析告诉你如今的90后身体状况到底有多差?
  9. 【Flink】connection indicates remote task manager was lost
  10. [HTML5]使用Box2dWeb模拟飞行箭矢
  11. python中的赋值运算符_整理Python中的赋值运算符
  12. 【大数据部落】R语言实现:混合正态分布EM最大期望估计法
  13. Failed to start The nginx HTTP and reverse proxy server.
  14. C++中常用的库函数 (自用)
  15. Encrypt加密解密
  16. 【实用工具】让文件资源管理器像浏览器一样实现多标签化——QTTabBar
  17. 计算机毕业设计Javahtml5健身房信息管理系统(源码+系统+mysql数据库+lw文档)
  18. [Pixhawk] ardupilot源码windows编译教程
  19. 香草冰淇淋和代码调试
  20. 李天平:技术以外的功夫

热门文章

  1. iOS提交审核:关于您的 App 正在使用广告标识符 (IDFA)的问题
  2. 用matlab计算连续函数卷积的表达式
  3. 香港AfterShip 爱客科技(深圳)有限公司
  4. 记录一次微信公众号开发遇到的问题,提示二级域名未备案
  5. 预备内容:---软件安装篇(2)
  6. surfacepro系列买到手第一件事——基础配置及基本软件安装指南【伸手党福利】
  7. 当电脑中已经装了打印机驱动时,想再连接同型号的另一台打印机
  8. Mybatis的属性(properties)
  9. ChatGPT通过谷歌L3入职测试,拿到18万美元offer?程序员们该何去何从?
  10. creo绘图属性模板_Proecreo完整制作工程图格式和模板