面向对象方式爬取知乎鸡汤
原网址
不管你现在出于什么阶段都一定要开始注重自己的穿搭,各种烂大街的格子衫,程序员们真的别再穿了,外在形象真的比你想象的重要的多,不是要你颜值有多好看,而是最起码你得收拾,你得干净吧。
面向对象编写爬虫
首先明确基本的思路:发送请求,解析请求,保存内容
搭建基本结构:
#需要的导入的模块
import requests
from lxml import etree
import json
#本次解析方式选择使用xpath
class ZhiHuArticle(object):def __init__(self):passdef get_response(self):passdef str_to_html(self):passdef pares(self):passdef save(self):passdef work(self):pass
if __name__ == '__main__':article = ZhiHuArticle()article.work()
发送请求
检查文章 找到对应的url,uesr_agent,发送请求
def __init__(self):self.url = "https://www.zhihu.com/question/268776431/answer/1276747242"# self.file =open("jitang.text","wb")def get_response(self,url):headers = {"user-agent": "Mozilla/5.0 (Windows NT 10.0; Win64; x64) AppleWebKit/537.36 (KHTML, like Gecko) Chrome/84.0.4147.89 Safari/537.36"}text = requests.get(url,headers=headers).textreturn text
解析请求
首先需要把获取的text文件转换成HTML格式:
html = etree.HTML(xxx)
然后用xpath解析html,找到对应的内容,可以在网址上用xpath解析工具查看找到的内容是否正确
def str_to_html(self,text):html = etree.HTML(text)return htmldef parse(self,html):nodes = html.xpath("//div[@class='RichContent-inner']/span/p/text()")return nodes
保存内容
def save(self,nodes):# self.file.write(dict_data)with open("jitang.text",'wb') as f:dict_data = {}for node in nodes[0:53]:dict_data = nodef.write(json.dumps(dict_data,ensure_ascii=False).encode())
源码(可能写的不规范,,别介意)
# !/usr/bin/env python
# _*_ coding:utf-8 _*_import requests
from lxml import etree
import jsonclass Jitang(object):def __init__(self):self.url = "https://www.zhihu.com/question/268776431/answer/1276747242"# self.file =open("jitang.text","wb")def get_response(self,url):headers = {"user-agent": "Mozilla/5.0 (Windows NT 10.0; Win64; x64) AppleWebKit/537.36 (KHTML, like Gecko) Chrome/84.0.4147.89 Safari/537.36"}text = requests.get(url,headers=headers).textreturn textdef str_to_html(self,text):html = etree.HTML(text)return htmldef parse(self,html):nodes = html.xpath("//div[@class='RichContent-inner']/span/p/text()")return nodesdef save(self,nodes):# self.file.write(dict_data)with open("jitang.text",'wb') as f:dict_data = {}for node in nodes[0:53]:dict_data = nodef.write(json.dumps(dict_data,ensure_ascii=False).encode())def run(self):response = self.get_response(self.url)html_ = self.str_to_html(response)pares_ = self.parse(html_)self.save(pares_)if __name__ == '__main__':jitang=Jitang()jitang.run()
结果
然后感觉这篇文章写的挺好的,,可能还是有这个年纪的多愁善感,生活不易,一起加油,努力奔向想要的生活。
面向对象方式爬取知乎鸡汤相关推荐
- [python爬虫] BeautifulSoup和Selenium简单爬取知网信息测试
作者最近在研究复杂网络和知识图谱内容,准备爬取知网论文相关信息进行分析,包括标题.摘要.出版社.年份.下载数和被引用数.作者信息等.但是在爬取知网论文时,遇到问题如下: 1.爬取内容总为空,其原因 ...
- python 数据分析 书籍推荐 知乎_Python 爬取知乎 9674 个问答,揭秘最受欢迎的 98 本书!...
原标题:Python 爬取知乎 9674 个问答,揭秘最受欢迎的 98 本书! 作者 | Yura 责编 | 胡巍巍 高尔基这话有没有道理我不知道, 咱也不敢问, 主要是现在也问不了. 那对我来说,读 ...
- python爬虫爬取知乎图片,轻松解决头像荒
前言 最近逛知乎,发现了一个问题. 回答下很多好看的头像,因此我动了一个心思,想要制作一个小网页,可以随机返回一款好看的情头.心思既起,当然要开始付诸行动.但是想要制作如此一个网页,后 ...
- python爬取知乎热搜_python爬取知乎
大小: 1.59M 文件类型: .zip 金币: 1 下载: 0 次 发布日期: 2021-01-30 资源简介 此项目的功能是爬取知乎用户信息以及人际拓扑关系,爬虫框架使用scrapy,数据存储使用 ...
- scrapy实战项目(简单的爬取知乎项目)
本项目实现了对知乎用户信息的爬取,并没有用数据库等,只是简单地用一些提取了一些字段然后存储在了一个csv文件中,但是同样可以实现无线爬取,理论上可以实现万级数据的爬取(当然取决于网速了) 其实想爬取知 ...
- scrapy爬取知乎问题实战
首先,需要理解cookies的含义,是存储在浏览器中的内容,在本地存储任意键值对,第一次访问时服务器返回一个id存储到本地cookie中,第二次访问将cookies一起发送到服务器中 常见http状态 ...
- python爬虫知乎图片_python 爬取知乎图片
先上完整代码 1 importrequests2 importtime3 importdatetime4 importos5 importjson6 importuuid7 from pyquery ...
- 【没落的985/211】Python爬取知乎8万字回答进行高校分析
↑ 点击上方 "一行数据" 关注 + 星标 ~ 每周送书,绝不错过 最近知乎一个"有哪些较原来没落的985/211院校?"的问题引起了很多人的关注,回答者各种分 ...
- python爬取知乎live_【实战视频教程】使用scrapy爬知乎live信息
[公众号:大邓python]用scrapy爬取知乎live_腾讯视频https://v.qq.com/x/cover/u0551wi70m1/u0551wi70m1.html 一.知乎Live抓包分析 ...
- python爬取知乎文章_大佬分享Python编程实现爬取知乎用户信息的例子
有一天 , 我发现我心仪已久的妹子在朋友圈里分享了知乎专栏的文章 , 就知道她也刷知乎 . 如果在知乎上关注她 , 我就能知道 , 她最近关注什么 , 心里想些什么 , 了解了解她喜欢的方面 , 还能 ...
最新文章
- iOS和android h5字体差异,关于移动hybrid开发中H5页面的字体应与系统保持一致的问题...
- 车和家李想:在智能电动车的红海里,这是我唯一能够胜出的机会所在...
- 【java 类加载的深入研究1】loadClass()的研究
- linux常用命令以及相关说明
- 记一次Mysql误删记录的挽救
- 【若依(ruoyi)】layui upload
- StyleGAN进化过程详解
- Mac IDEA解决Maven项目命令行报错:command not found: mvn
- 批量自动化配置Dell服务器idrac管理口IP
- IDEA从零到精通(29)之chinese中文汉化插件
- ios 版手机迅雷的安装方法
- 精简高效的CSS命名准则/方法
- 文档扫描OCR识别-2
- solr常见问题整理
- 解决树莓派4B无线鼠标迟滞/延迟的问题
- Linux修改root密码
- linux客户端配置网络打印机,请教linux命令行配置和使用网络共享打印机的..._网络编辑_帮考网...
- Effective C++ More Effective C++(四)
- 百度之星(2015)
- 广州大学 操作系统实验之银行家算法