python爬取的数据存在哪里,python爬虫保存数据 您所在的位置:网站首页 爬虫的虫是哪个种类 python爬取的数据存在哪里,python爬虫保存数据

python爬取的数据存在哪里,python爬虫保存数据

2024-07-05 15:54| 来源: 网络整理| 查看: 265

爬虫请求解析后的数据,需要保存下来,才能进行下一步的处理,一般保存数据的方式有如下几种:

文件:txt、csv、excel、json等,保存数据量小。

关系型数据库:mysql、oracle等,保存数据量大python安装都需要装什么。

非关系型数据库:Mongodb、Redis等键值对形式存储数据,保存数据量大。

二进制文件:保存爬取的图片、视频、音频等格式数据。

首先,爬取豆瓣读书《平凡的世界》的3页短评信息,然后保存到文件中。

https://book.douban.com/subject/1200840/comments/

具体代码如下(忽略异常):

import requests from bs4 import BeautifulSoup urls=['https://book.douban.com/subject/1200840/comments/?start={}&limit=20&status=P&sort=new_score'.format(str(i)) for i in range(0, 60, 20)] #通过观察的url翻页的规律,使用for循环得到3个链接,保存到urls列表中 print(urls) dic_h = { "User-Agent": "Mozilla/5.0 (Macintosh; Intel Mac OS X 10_15_7) AppleWebKit/537.36 (KHTML, like Gecko) Chrome/87.0.4280.88 Safari/537.36"} comments_list = [] #初始化用于保存短评的列表 for url in urls: #使用for循环分别获取每个页面的数据,保存到comments_list列表 r = requests.get(url=url,headers = dic_h).text soup = BeautifulSoup(r, 'lxml') ul = soup.find('div',id="comments") lis= ul.find_all('p') list2 =[] for li in lis: list2.append(li.find('span').string) # print(list2) comments_list.extend(list2) print(comments_list)

爬到评论数据保存到列表中:在这里插入图片描述

使用open()方法写入文件

保存数据到txt

将上述爬取的列表数据保存到txt文件:

with open('comments.txt', 'w', encoding='utf-8') as f: #使用with open()新建对象f # 将列表中的数据循环写入到文本文件中 for i in comments_list: f.write(i+"\n") #写入数据

在这里插入图片描述保存数据到csv

CSV(Comma-Separated Values、逗号分隔值或字符分割值)是一种以纯文件方式进行数据记录的存储格式,保存csv文件,需要使用python的内置模块csv。

写入列表或者元组数据: 创建writer对象,使用writerow()写入一行数据,使用writerows()方法写入多行数据。

使用writer对象写入列表数据,示例代码如下:

''' 遇到问题没人解答?小编创建了一个Python学习交流QQ群:531509025 寻找有志同道合的小伙伴,互帮互助,群里还有不错的视频学习教程和PDF电子书! ''' import csv headers = ['No','name','age'] values = [ ['01','zhangsan',18], ['02','lisi',19], ['03','wangwu',20] ] with open('test1.csv','w',newline='') as fp: # 获取对象 writer = csv.writer(fp) # 写入数据 writer.writerow(headers) #写入表头 writer.writerows(values) # 写入数据

写入字典数据: 创建DictWriter对象,使用writerow()写入一行数据,使用writerows()方法写入多行数据。

使用 DictWriter 对象写入字典数据,示例代码如下:

import csv headers = ['No','name','age'] values = [ {"No":'01',"name":'zhangsan',"age":18}, {"No":'02',"name":'lisi',"age":19}, {"No":'03',"name":'wangwu',"age":20}] with open('test.csv','w',newline='') as fp: dic_writer = csv.DictWriter(fp,headers) dic_writer.writeheader()# 写入表头 dic_writer.writerows(values) #写入数据

将上述爬取到的数据保存到csv文件中:

''' 遇到问题没人解答?小编创建了一个Python学习交流QQ群:531509025 寻找有志同道合的小伙伴,互帮互助,群里还有不错的视频学习教程和PDF电子书! ''' import requests import csv from bs4 import BeautifulSoup urls=['https://book.douban.com/subject/1200840/comments/?start={}&limit=20&status=P&sort=new_score'.format(str(i)) for i in range(0, 60, 20)] #通过观察的url翻页的规律,使用for循环得到5个链接,保存到urls列表中 print(urls) dic_h = { "User-Agent": "Mozilla/5.0 (Macintosh; Intel Mac OS X 10_15_7) AppleWebKit/537.36 (KHTML, like Gecko) Chrome/87.0.4280.88 Safari/537.36"} comments_list = [] #初始化用于保存短评的列表 for url in urls: #使用for循环分别获取每个页面的数据,保存到comments_list列表 r = requests.get(url=url,headers = dic_h).text soup = BeautifulSoup(r, 'lxml') ul = soup.find('div',id="comments") lis= ul.find_all('p') list2 =[] for li in lis: list2.append(li.find('span').string) # print(list2) comments_list.extend(list2) new_list = [[x] for x in comments_list] #列表生成器,将列表项转为子列表 with open("com11.csv", mode="w", newline="", encoding="utf-8") as f: csv_file = csv.writer(f) # 创建CSV文件写入对象 for i in new_list: csv_file.writerow(i)

在这里插入图片描述使用pandas保存数据

pandas支持多种文件格式的读写,最常用的就是csv和excel数据的操作,因为直接读取的数据是数据框格式,所以在爬虫、数据分析中使用非常广泛。

一般,将爬取到的数据储存为DataFrame对象(DataFrame 是一个表格或者类似二维数组的结构,它的各行表示一个实例,各列表示一个变量)。 pandas保存数据到excel、csv

pandas保存excel、csv,非常简单,两行代码就可以搞定:

df = pd.DataFrame(comments_list) #把comments_list列表转换为pandas DataFrame df.to_excel('comments.xlsx') #保存到excel表格 # df.to_csv('comments.csv')#保存在csv文件

在这里插入图片描述结尾给大家推荐一个非常好的学习教程,希望对你学习Python有帮助!

Python基础入门教程推荐:更多Python视频教程-关注B站:Python学习者

【Python教程】全网最容易听懂的1000集python系统学习教程(答疑在最后四期,满满干货)

Python爬虫案例教程推荐:更多Python视频教程-关注B站:Python学习者

2021年Python最新最全100个爬虫完整案例教程,数据分析,数据可视化,记得收藏哦



【本文地址】

公司简介

联系我们

今日新闻

    推荐新闻

    专题文章
      CopyRight 2018-2019 实验室设备网 版权所有