3.1 保存爬虫数据至Txt文本

在从Web上爬取数据以后,我们需要对数据进行保存,以便后续进一步的数据分析。由于数据库的读写速度很快,所以一般爬虫数据会存储在数据库中,除此之外,简单的爬虫数据可以保存在文本,Json文件或者Excel文件中。本文为学习崔庆才爬虫教程总结。

1.保存数据至TXT文本中

跟其他编程语言一样,保存txt文本,只需打开一个文本,指定读写方式,写入数据,然后关闭即可。在Python中还可以用with open方式来简化。

 with open('save_data_to_txt.txt', 'a', encoding='utf-8') as f:
        f.write('\n'.join([question, author, answer]))

下面给一个爬取知乎数据的例子,爬取知乎探索页面,获取问题作者答案三部分。

import requests
from pyquery import PyQuery as pq

base_url = 'https://www.zhihu.com/explore'

headers = {
    'User-Agent': 'Mozilla/5.0 (Windows NT 10.0; WOW64) AppleWebKit/537.36 (KHTML, like Gecko) Chrome/67.0.3396.99 Safari/537.36',
}

html = requests.get(base_url,headers=headers).text
doc = pq(html)
items = doc('.explore-tab .feed-item').items()

for item in items:
    question = item.find('h2').text()
    author = item.find('.author-link-line').text()
    answer = pq(item.find('.content').html()).text()
    with open('zhihu-explore.txt', 'a', encoding='utf-8') as f:
        f.write('\n'.join([question, author, answer]))
        f.write('\n' + '=' * 50 + '\n')

注:文本打开方式可以随意组合如下。

  • r,以只读方式打开文件。文件的指针将会放在文件的开头。这是默认模式。

  • rb,以二进制格式打开一个文件用于只读。文件指针将会放在文件的开头。这是默认模式。

  • r+,打开一个文件用于读写。文件指针将会放在文件的开头。

  • rb+,以二进制格式打开一个文件用于读写。文件指针将会放在文件的开头。

  • w,打开一个文件只用于写入。如果该文件已存在则将其覆盖。如果该文件不存在,创建新文件。

  • wb ,以二进制格式打开一个文件只用于写入。如果该文件已存在则将其覆盖。如果该文件不存在,创建新文件。

  • w+, 打开一个文件用于读写。如果该文件已存在则将其覆盖。如果该文件不存在,创建新文件。

  • wb+,以二进制格式打开一个文件用于读写。如果该文件已存在则将其覆盖。如果该文件不存在,创建新文件。

  • a,打开一个文件用于追加。如果该文件已存在,文件指针将会放在文件的结尾。也就是说,新的内容将会被写入到已有内容之后。如果该文件不存在,创建新文件进行写入。 ab 以二进制格式打开一个文件用于追加。如果该文件已存在,文件指针将会放在文件的结尾。也就是说,新的内容将会被写入到已有内容之后。如果该文件不存在,创建新文件进行写入。

  • a+,打开一个文件用于读写。如果该文件已存在,文件指针将会放在文件的结尾。文件打开时会是追加模式。如果该文件不存在,创建新文件用于读写。

  • ab+,以二进制格式打开一个文件用于追加。如果该文件已存在,文件指针将会放在文件的结尾。如果该文件不存在,创建新文件用于读写。

Last updated