0
点赞
收藏
分享

微信扫一扫

2023年 团体程序设计天梯赛个人感悟及总结(附题解)——遗憾国三

星河出山 2023-04-24 阅读 31
爬虫python

 最近更新

🌟上节回顾

        前面一段时间,我们介绍了关于爬虫的几个解析库,学习了正则表达式, 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实战的文章,在评论区留言,我就多更一点,如果没有的话,我就一篇文章带过。

举报

相关推荐

0 条评论