- 订阅:新手可以订阅我的其他专栏。免费阶段订阅量1000+
python项目实战
Python编程基础教程系列(零基础小白搬砖逆袭)
- 说明:本专栏持续更新中,目前专栏免费订阅,在转为付费专栏前订阅本专栏的,可以免费订阅付费专栏,可报销(名额有限,先到先得)。
本专栏即将转为付费专栏,更多详情请看下方链接,五一或有优惠活动哦。
关于专栏〖Python网络爬虫实战〗转为付费专栏的订阅说明
- 作者:爱吃饼干的小白鼠。Python领域优质创作者,2022年度博客新星top100入围,荣获多家平台专家称号。
最近更新
〖Python网络爬虫实战⑰〗- 网页解析利器parsel实战
🌟上节回顾
前面一段时间,我们介绍了关于爬虫的几个解析库,学习了正则表达式, XPATH, BeautifulSoup,pyquery,parsel。那么,我们可以获取到了数据,那么,怎么获取下来呢。接下来,这段时间,我们开始学习数据存储。
⭐️TXT纯文本
我们知道将数据保存到 TXT 文本的操作非常简单,而且 TXT 文本几乎兼容任何平台,可以说是无处不在。但是这个这有个很大的缺点,那就是不利于检索。一旦,内容比较多的话,就比较麻烦。但是,对于,新手,这个足够用了,我们也采集不到很多的数据。所以如果对检索和数据结构要求不高,追求方便第一的话,可以采用 TXT 文本存储。
🌟实战案例
我们在前面的文章,介绍了一个简单的正则表达式实战,当时,我们没有去将如何保存数据,现在,我们来讲一下,如何保存数据。获取数据的代码,我们这里就总结展示了。
import requests
import lxml
from lxml import etree
url='https://www.ruiwen.com/word/jingdianmeiwenzhaichao.html'
headers={
'user-agent':' Mozilla/5.0 (Windows NT 10.0; WOW64) AppleWebKit/537.36 (KHTML, like Gecko) Chrome/86.0.4240.198 Safari/537.36'
}
#发送请求
response=requests.get(url=url)
content=response.content
doc=etree.HTML(content).xpath('//div[@class="content"]/p')
print(doc)
for p in doc:
print(p.text)
我们相信,学到了这里,什么的代码都能看懂了。我们就不过多解释,不懂的地方,在评论区留言。我们接下来,写保存成TXT的代码,其实,这个很简单,也只需要几行代码就可以搞定。
passage=p.text
passage=passage+'\n'
with open('小说.txt',mode='a')as file:
file.write(passage)
我们这里将打开一个名为“小说.txt”的文件,并将文件中的内容写入该文件中。请注意,代码中使用了字符串的拼接操作符 +
,以将字符串连接在一起。mode='a'
参数表示以追加模式打开文件,这意味着写入操作会覆盖原有的文件内容。最后,使用 file.write()
方法将字符串写入文件。
我们来看看效果:
大家,可以看到,我们已经已经保存到了本地的TXT文件。这里主要是为了演示文件保存的方式,
这样我们获取数据的内容就被保存成文本形式了。回过头来我们看下TXT保存需要重点了解哪些内容,其实就是文本写入操作——就是 open、write、close 这三个方法的用法。
这里 open 方法的第一个参数即要保存的目标文件名称;第二个参数为 a,代表以覆盖写入的方式写入文本;另外,我们还指定了文件的编码为 utf-8。
🌟打开方式
在刚才的实例中,open 方法的第二个参数设置成了 a,这样在每次写入文本时不会清空文件里面的内容,然后在之前的内容后面继续写入我们的数据内容,这是一种文件打开方式。关于文件的打开方式,其实还有其他几种,这里简要介绍一下。
-
r:以只读方式打开文件。文件的指针将会放在文件的开头。这是默认模式。
-
rb:以二进制只读方式打开一个文件。文件指针将会放在文件的开头。
-
r+:以读写方式打开一个文件。文件指针将会放在文件的开头。
-
rb+:以二进制读写方式打开一个文件。文件指针将会放在文件的开头。
-
w:以写入方式打开一个文件。如果该文件已存在,则将其覆盖。如果该文件不存在,则创建新文件。
-
wb:以二进制写入方式打开一个文件。如果该文件已存在,则将其覆盖。如果该文件不存在,则创建新文件。
-
w+:以读写方式打开一个文件。如果该文件已存在,则将其覆盖。如果该文件不存在,则创建新文件。
-
wb+:以二进制读写格式打开一个文件。如果该文件已存在,则将其覆盖。如果该文件不存在,则创建新文件。
-
a:以追加方式打开一个文件。如果该文件已存在,文件指针将会放在文件结尾。也就是说,新的内容将会被写入到已有内容之后。如果该文件不存在,则创建新文件来写入。
-
ab:以二进制追加方式打开一个文件。如果该文件已存在,则文件指针将会放在文件结尾。也就是说,新的内容将会被写入到已有内容之后。如果该文件不存在,则创建新文件来写入。
-
a+:以读写方式打开一个文件。如果该文件已存在,文件指针将会放在文件的结尾。文件打开时会是追加模式。如果该文件不存在,则创建新文件来读写。
-
ab+:以二进制追加方式打开一个文件。如果该文件已存在,则文件指针将会放在文件结尾。如果该文件不存在,则创建新文件用于读写。
🌟文件写入
文件写入有这样的写法,先open某个文件,在write写入,在close文件,代码示例如下:
f = open('小说.txt', 'a+')
f.write(content + '\n')
f.close()
文件写入还有一种简写方法,那就是使用 with as 语法。在 with 控制块结束时,文件会自动关闭,所以就不需要再调用 close 方法了。我个人呢,也是喜欢这个用法,因人而异吧,大家可以选一个自己喜欢的方式。
⭐️总结
上面便是利用 Python 将我们获取到的数据保存为 TXT 文件的方法,这种方法简单易用,操作高效,是一种最基本的保存数据的方法。保存TXT文件是非常简单的。
下一篇文章,我们准备介绍关于CSV文件的保存,如果,大家想多出一点CSV实战的文章,在评论区留言,我就多更一点,如果没有的话,我就一篇文章带过。