文件保存的形式是多种多样的,最简单的形式是直接保存文本文件,如:TEXT,JSON,CSV等,另外还可以保存到数据中,如关系型数据库Mysql,非关系型数据库等:MongoDB,Redis等
TXT文本保存
保存知乎上"发现"页面的"热门话题"部分,将其问题和答案统一保存成txt形式
import requests
from pyquery import PyQuery as pq
url = "https://www.zhihu.com/explore"
headers = {
"user-agent": "Mozilla/5.0 (Windows NT 10.0; Win64; x64) AppleWebKit/537.36 (KHTML, like Gecko) Chrome/96.0.4664.45 Safari/537.36"
}
html = requests.get(url=url,headers=headers).text
doc = pq(html)
items = doc(".css-vurnku .css-1as7ang .css-1g4zjtl .css-1nd7dqm").items()
print(items)
for item in items:
url_q = item.attr("href")
requests_url = requests.get(url=url_q,headers=headers).text
html_q = pq(requests_url)
doc_q = doc(html_q)
requestion = doc_q.find('.QuestionHeader .QuestionHeader-content .QuestionHeader-main .QuestionHeader-title').text()
file=open("explore.txt","a+",encoding="utf-8")
file.write(f"\n {requestion}")
file.write("\n" + "=" * 50 + "\n")
file.close()
文本的打开方式
r | 以只读方式打开文件,文件的指针将会放在文件的开头,这是默认模式 |
rb | 以二进制只读方式打开一个文件, 文件指针将会放在文件的开头 |
r+ | 以读写方式打开一个文件 ,文件指针将会放在文件的开头 |
rb+ | 以二进制读写方式打开一个文件, 文件指针将会放在文件的开 |
w | 以写入方式打开一个文件, 如果该文件已存在,则将其瞿盖 ,如果该文件不存在,则创建新文件 |
wb | 以二进制写入方式打开一个文件,如果该文件已存在,则将其覆盖,如果该文件不存在,则创建新文件 |
w+ | 以读写方式打开一个文件, 如果该文件已存在,则将其覆盖, 如果该文件不存在,则创 建新文件 |
wb+ | 以二进制读写格式打开一个文件,如果该文件已存在, 将其覆盖,如果该文件不存在, 则创建新文件 |
a | 以追加方式打开一个文件,如果该文件已存在,文件指针将会放在文件结尾, 也就说,新的内容将会被写入到已有内容之后 果该文件不存在, 则创建新文件来写入 |
ab | 以二进制追加方式打开 一个文件,如果该文件已存在,则文件指针将会放在文件结尾, 也就是说,新的内容将会被写入到己有内容之后 如果该文件不存在,则创建新文件来写入 |
a+ | 以读写方式打开一个文件, 如果该文件已存在,文件指针将会放在文件的结尾,文件打开时会是追加模式 如果该文件不存在,则创建新文件来读写 |
ab+ | 以二进制追加方式打开 一个文件 如果该文件已存在,则文件指针将会放在文件结尾 如果该文件不存在,则创建新文件用于读写 |