当前位置: 首页 > wzjs >正文

苹果自带建设网站百度app最新版本

苹果自带建设网站,百度app最新版本,政府网站建设分类,秦皇岛微信群大家好,欢迎继续关注本系列爬虫教程。前几篇博客中,我们依次学习了爬虫的基础知识、数据解析技巧以及应对反爬策略的高级请求方法。在实际爬虫项目中,数据采集只是第一步,如何将提取到的数据进行存储与管理同样非常重要。本篇博客…

大家好,欢迎继续关注本系列爬虫教程。前几篇博客中,我们依次学习了爬虫的基础知识、数据解析技巧以及应对反爬策略的高级请求方法。在实际爬虫项目中,数据采集只是第一步,如何将提取到的数据进行存储与管理同样非常重要。本篇博客将详细介绍如何将数据保存到CSV文件、JSON文件以及SQLite数据库中,并附上完整的代码示例,代码中均包含详细的中文注释,方便大家理解和学习。

1. 为什么需要数据存储

在爬虫开发中,数据存储是将抓取的数据进行持久化的重要步骤。常见的数据存储方式有:

  • CSV文件:适用于数据量不大且结构化简单的数据,便于数据交换与后续分析。
  • JSON文件:适合存储层次结构较为复杂的数据,具有良好的可读性与跨语言兼容性。
  • 数据库(如SQLite、MySQL等):适用于大规模数据存储和复杂查询,具备更高的数据安全性与管理能力。

本篇博客将通过一个完整的示例,演示如何从豆瓣电影TOP250页面中抓取电影信息,并将数据分别保存到CSV、JSON以及SQLite数据库中。


2. 完整示例代码

下面的代码示例包含三个主要部分:

  1. 数据采集:通过requestsBeautifulSoup爬取豆瓣电影TOP250页面,提取电影名称与评分。
  2. 数据存储到CSV文件:利用Python自带的csv模块将数据写入CSV文件。
  3. 数据存储到JSON文件:利用json模块将数据存入JSON文件,格式美观易读。
  4. 数据存储到SQLite数据库:使用sqlite3模块将数据存入SQLite数据库,便于后续数据查询与管理。

注意:运行以下代码前,请确保已安装所需库,如requestsbs4lxml。可通过命令 pip install requests bs4 lxml 进行安装。

# 导入所需模块
import requests            # 用于发送网络请求
from bs4 import BeautifulSoup  # 用于解析HTML页面
import csv                 # 用于CSV文件读写
import json                # 用于JSON数据处理
import sqlite3             # 用于SQLite数据库操作def fetch_douban_top250(url):"""从豆瓣电影TOP250页面获取电影名称和评分:param url: 目标页面的URL:return: 包含电影信息的列表,每个元素是一个字典,包含键 'title' 和 'rating'"""# 定义请求头,模拟浏览器行为headers = {"User-Agent": "Mozilla/5.0 (Windows NT 10.0; Win64; x64) AppleWebKit/537.36 (KHTML, like Gecko)"}# 发送HTTP请求response = requests.get(url, headers=headers)# 初始化存储电影信息的列表movies_list = []# 如果请求成功,状态码为200,则解析页面内容if response.status_code == 200:# 使用BeautifulSoup和lxml解析器解析HTML页面soup = BeautifulSoup(response.text, 'lxml')# 查找所有包含电影信息的div标签,class属性为"item"items = soup.find_all('div', class_='item')# 遍历每个电影信息块for item in items:# 提取电影名称title = item.find('span', class_='title').get_text(strip=True)# 提取电影评分rating = item.find('span', class_='rating_num').get_text(strip=True)# 将提取到的信息以字典形式存入列表movies_list.append({'title': title, 'rating': rating})else:print("请求失败,状态码:", response.status_code)return movies_listdef save_to_txt(movies, filename):"""将电影数据保存到TXT文件中:param movies: 包含电影信息的列表,每个元素为字典:param filename: TXT文件名"""with open(filename, "w", encoding="utf-8") as f:for movie in movies:title = movie['title']rating = movie['rating']f.write(f"电影:{title},评分:{rating}\n")print(f"数据已成功存储到:{filename}")def save_to_csv(movies, filename):"""将电影数据保存到CSV文件中:param movies: 包含电影信息的列表,每个元素为字典:param filename: CSV文件名"""# 使用with语句打开文件,确保文件操作完成后自动关闭with open(filename, 'w', newline='', encoding='utf-8-sig') as csvfile:# 定义CSV文件的字段名称fieldnames = ['title', 'rating']# 创建CSV字典写入对象writer = csv.DictWriter(csvfile, fieldnames=fieldnames)# 写入表头writer.writeheader()# 逐行写入每部电影的信息for movie in movies:writer.writerow(movie)print(f"数据已成功保存到CSV文件:{filename}")def save_to_json(movies, filename):"""将电影数据保存到JSON文件中:param movies: 包含电影信息的列表,每个元素为字典:param filename: JSON文件名"""# 使用with语句打开文件,确保文件操作完成后自动关闭with open(filename, 'w', encoding='utf-8') as jsonfile:# 将数据写入文件,ensure_ascii=False保证中文不被转义,indent=4使格式美观json.dump(movies, jsonfile, ensure_ascii=False, indent=4)print(f"数据已成功保存到JSON文件:{filename}")def save_to_sqlite(movies, db_name):"""将电影数据保存到SQLite数据库中:param movies: 包含电影信息的列表,每个元素为字典:param db_name: SQLite数据库文件名"""# 连接或创建数据库文件conn = sqlite3.connect(db_name)# 创建游标对象,用于执行SQL语句cursor = conn.cursor()# 创建movies表(如果不存在),包含自增id、电影名称和评分cursor.execute('''CREATE TABLE IF NOT EXISTS movies (id INTEGER PRIMARY KEY AUTOINCREMENT,title TEXT,rating TEXT)''')# 遍历电影数据,将每部电影信息插入到数据库中for movie in movies:cursor.execute('INSERT INTO movies (title, rating) VALUES (?, ?)', (movie['title'], movie['rating']))# 提交事务,保存更改conn.commit()# 关闭数据库连接conn.close()print(f"数据已成功保存到SQLite数据库:{db_name}")if __name__ == '__main__':# 定义目标URL,豆瓣电影TOP250页面url = 'https://movie.douban.com/top250'# 调用函数获取电影数据movies = fetch_douban_top250(url)# 如果成功获取到数据,则依次保存到CSV、JSON和SQLite数据库if movies:# 保存到TXT文件save_to_txt(movies, 'douban_top250.txt')# 保存到CSV文件save_to_csv(movies, 'douban_top250.csv')# 保存到JSON文件save_to_json(movies, 'douban_top250.json')# # 保存到SQLite数据库# save_to_sqlite(movies, 'douban_top250.db')else:print("未能获取到电影数据,请检查请求和页面结构。")

3. 代码解析

3.1 数据采集部分

  • 请求与解析
    利用 requests.get 方法向豆瓣电影TOP250页面发送请求,并通过 BeautifulSoup 结合 lxml 解析器解析返回的HTML页面。
  • 数据提取
    通过查找包含电影信息的<div class="item">标签,提取电影名称和评分,并将每条数据以字典形式存入列表。

3.2 数据存储到CSV

  • CSV写入
    使用 csv.DictWriter 写入CSV文件,先写入表头再逐行写入电影数据,确保文件编码为utf-8以防止中文乱码。

3.3 数据存储到JSON

  • JSON写入
    利用 json.dump 方法将数据写入JSON文件,通过参数 ensure_ascii=False 保证中文字符不被转义,同时使用 indent=4 美化输出格式。

3.4 数据存储到SQLite

  • 数据库操作
    通过 sqlite3 模块连接数据库,如果指定的数据库文件不存在则自动创建。
  • 表结构创建
    利用SQL语句创建包含id(自增主键)、titlerating字段的movies表。
  • 数据插入
    遍历电影数据并使用参数化SQL语句将数据逐行插入到表中,最后提交事务并关闭数据库连接。

4. 小结

在本篇博客中,我们学习了如何对爬虫抓取到的数据进行多种方式的存储,包括保存到CSV文件、JSON文件以及SQLite数据库中。通过完整的代码示例,希望大家能够实践并灵活运用这些数据存储技术,为后续数据分析与应用打下坚实基础。

如果你对本文内容有疑问或建议,欢迎在评论区留言讨论,也请关注我的CSDN博客获取更多更新内容。记得点赞、收藏和分享哦!

让我们在Python爬虫的道路上不断前进,探索更多高级技术吧!

http://www.dtcms.com/wzjs/21897.html

相关文章:

  • 服务器安装WordPress没有权限访问关键词如何优化排名
  • 小型企业网站开发价格百度关键词统计
  • 菏泽网站建设天津百度
  • 网站建设的重点难点个人网站推广怎么做
  • xuezuo网站建设南宁网站建设网络公司
  • 织梦做网站要多长时间优化网站排名
  • 网页打不开是什么问题搜索引擎优化涉及的内容
  • 品牌商品怎么做防伪网站夸克浏览器网页版入口
  • 做网站编辑有人带吗韶关网站seo
  • 电商网站后台深圳竞价托管公司
  • 网站部署到终端机怎么做seo资料网
  • 淘乐惠网站怎么做深圳网站建设服务
  • 电子商务网站功能需求方象科技服务案例
  • 微信小程序可做购物网站吗网站seo置顶 乐云践新专家
  • 江油市规划和建设局网站北京官网优化公司
  • 怎么做导航网站网站设计公司哪家专业
  • html5网站搭建开一个免费网站
  • 新开传奇网站手机版网站大全软件下载
  • 怎么样做网站或产品推广什么是网络营销公司
  • 创业 做网站营销型网站制作企业
  • 台州商务网站手机推广app
  • 佛山外贸网站建设怎么做网页设计的页面
  • 网站制作过程seo教程有什么
  • 哪个网站做ppt能赚钱网络营销的特点有哪些
  • 网站 数据库知乎营销平台
  • 邹城建设银行网站搜索引擎优化seo专员
  • 自己做网站卖东西免费建站网站一站式
  • 银川网站建设广告公司名单企业推广平台
  • 衡水网站建设网络公司海淀区seo搜索引擎
  • 西安专业网站建设域名停靠浏览器