代码编织梦想

在前几篇 Python 实战中,我们直接把爬虫获取到的数据存储到 excel 文件或者 csv 文件中。今天,我们将爬虫获取到的数据存储到数据库中。

而存到数据库中,我们可以选择 MySQL、PostgreSQL、SqLite、Sql Server 等数据库。

在这些数据库中 SqLite 最轻量级、不需要配置,Python 自带 SQLite ,今天我们选择将爬虫获取到的数据存到 SQLite 数据库中,以便以后进行查询和分析。

一、SQLite 简介

SQLite 是一个轻量级的关系型数据库,它是一个开源的嵌入式数据库引擎。SQLite 占用资源非常少,通常用于嵌入式应用程序和移动设备,也经常被用作桌面应用程序的本地数据库。由于其小巧和便携性,SQLite 成为了许多开发人员的首选数据库。

二、创建sqlite数据库

Python 的标准库中包含了一个名为 sqlite3 的模块,可以用于访问 SQLite 数据库。要使用 SQLite,只需在 Python 代码中导入 sqlite3 模块即可。

# 导入模块
import sqlite3

# 连接数据库
conn = sqlite3.connect('sqlite_test.db')

# 创建一个游标对象,用于执行 SQL 语句
cursor = conn.cursor()

# 创建表
cursor.execute('''CREATE TABLE person
       (id varchar(20) PRIMARY KEY,
        name varchar(20));''')

# 新增
cursor.execute("INSERT INTO person (id, name) VALUES ('1', '张三')")
cursor.execute("INSERT INTO person (id, name) VALUES ('2', '李四')")
cursor.execute("INSERT INTO person (id, name) VALUES ('3', '王五')")

# 关闭 cursor
cursor.close()
# 提交当前事务
conn.commit()
# 关闭连接
conn.close()

在同一级文件目录下,可以查看刚才执行程序后生成的数据库文件,截图如下:

三、数据库图形化工具

我们可以通过 SQLiteStudio、Navicat for SQLite 等图形化工具,或者在 Pycharm 中安装 Database Navigator 插件,直观的查看数据库表结构和数据。

本文使用 SQLiteStudio 图形化工具。

1、SQLiteStudio

  • GitHub 开源地址:https://github.com/pawelsalawa/sqlitestudio
  • 下载地址 1:https://sqlitestudio.pl/
  • 下载地址 2:https://github.com/pawelsalawa/sqlitestudio/releases

下载、安装、打开 SQLiteStudio,连接刚才生成的sqlite_test.db数据库文件,打开person表,就可以直观的看到刚才写入到数据库中的数据。

2、Database Navigator插件

也可以在 Pycharm 中安装 Database Navigator 插件,查看数据库表结构和数据。

四、爬虫实战

以爬取王者荣耀官网展示的 117 个英雄,保存到 SQLite 数据库为例。

打开王者荣耀官网——英雄资料网页,url 为https://pvp.qq.com/web201605/herolist.shtml

打开开发者工具,查看 Network 中的请求,找到heroist.json这个请求,在 Headers 里可以找到请求 url 为https://pvp.qq.com/web201605/js/herolist.json

在 Response 里可以看到返回的是 117 个英雄的属性,我们只保存其中的enamecnametitleskin_name4 个字段到本地数据库。

分析完成,开始写爬虫代码和保存到 SQLite 数据库的代码。

完整代码如下:

import requests
import pandas as pd
import sqlite3

url = "https://pvp.qq.com/web201605/js/herolist.json"
response_json = requests.get(url).json()
df = pd.json_normalize(response_json, errors='ignore')

# 选择保存的列
df = df.loc[:, ['ename', 'cname', 'title', 'skin_name']]

# 创建一个SQLite数据库连接
conn = sqlite3.connect('herolists.db')

# 将DataFrame写入SQLite数据库
df.to_sql('herolists_table', conn, if_exists='replace', index=False)

# 提交更改并关闭连接
conn.commit()
conn.close()

上面代码的执行逻辑如下:

  1. 导入所需的库:requests(用于发送 HTTP 请求),pandas(用于处理数据)和 sqlite3(用于连接 SQLite 数据库)。
  2. 定义 API 的 URL。
  3. 使用 requests.get() 方法获取 API 的响应,并使用 json() 方法将其转换为 JSON 格式。
  4. 使用 pd.json_normalize() 方法将 JSON 数据转换为 Pandas DataFrame。
  5. 选择要保存的列(enamecnametitleskin_name)。
  6. 使用 sqlite3.connect() 方法创建一个 SQLite 数据库连接。
  7. 使用 df.to_sql() 方法将 DataFrame 写入 SQLite 数据库。if_exists='replace' 参数表示如果表已存在,则替换它。index=False 参数表示不包含索引列。
  8. 使用 conn.commit() 方法提交更改,并使用 conn.close() 方法关闭连接。

五、查看数据

使用 SQLiteStudio 图形化工具,连接刚才生成的herolists.db数据库文件,打开herolists_table表,就可以直观的看到刚才写入到数据库中的数据,117 条数据已经保存到 SQLite 数据库。

六、总结

在这个 Python 实战中,我们学习了如何将爬虫获取到的数据存储到数据库中。首先,我们使用requests库获取了 API 的数据,并将其转换为 JSON 格式。然后,我们使用pandas库将 JSON 数据转换为 DataFrame,并从中选择了需要保存的列。接下来,我们使用sqlite3库创建了一个 SQLite 数据库连接,并将 DataFrame 写入到了数据库中。最后,我们提交了更改并关闭了连接。

通过这个实战,我们学会了如何使用 Python 将爬虫获取到的数据存储到 SQLite 数据库中。这为我们在实际项目中处理和分析数据提供了很大的便利。然而,这仅仅是一个简单的示例,实际项目中可能需要处理更复杂的数据和数据库。因此,我们需要不断学习和探索,以提高自己的数据处理能力。

本文首发在“程序员coding”公众号,欢迎关注与我一起交流学习。

版权声明:本文为博主原创文章,遵循 CC 4.0 BY-SA 版权协议,转载请附上原文出处链接和本声明。
本文链接:https://blog.csdn.net/stormhou/article/details/135900742

python网络爬虫抓取动态网页并将数据存入数据库mysql-爱代码爱编程

简述 以下的代码是使用python实现的网络爬虫,抓取动态网页 http://hb.qq.com/baoliao/ 。此网页中的最新、精华下面的内容是由JavaScript动态生成的。审查网页元素与网页源码是不同。

python爬虫写入数据库_python网络爬虫抓取动态网页并将数据存入数据库MySQL-爱代码爱编程

简述 以下的代码是使用python实现的网络爬虫,抓取动态网页 http://hb.qq.com/baoliao/ 。此网页中的最新、精华下面的内容是由JavaScript动态生成的。审查网页元素与网页源码是不同。 以上是网页源码 以上是审查网页元素 所以此处不能简单的使用正则表达式来获取内容。 以下是完整的获取内容并存储到数据库的思路及源码。 实

python爬取新闻存入数据库_python爬取数据并保存到数据库中(第一次练手完整代码)...-爱代码爱编程

1.首先,下载需要的模块requests, BeautifulSoup, datetime, pymysql(注意,因为我用的python3.7,不支持mysqldb了),具体的下载方法有pip下载,或者使用Anaconda版本python的童鞋可以使用conda下载。 2.创建conndb,py,包含数据库的连接断开,增删改查等操作: #!/usr/bi

Python爬取网站数据并存入数据库(简单易懂)-爱代码爱编程

hello 大家好,最近写代码,需要用到爬虫去爬取数据,废话不多说,进入主题 既然要存入数据库,那必然需要进行数据库连接,通过Python里面的pymysql驱动去链接我们的mysql数据库,然后建立数据库游标,用户可以用SQL语句逐一从游标中获取记录,并赋给主变量,交由主语言进一步处理。 import pymysql conn = pymysql.c

Python爬虫实战(一):翻页爬取数据存入SqlServer-爱代码爱编程

目录 前言爬取目标准备工作代码分析第一步第二步第三步第四步第五步第六步最后:启动 前言 小袁开始实习了,我主管让我练一下爬虫,公司是做商标大数据的,所以这次爬取的是商标网站,之后也会更新一些爬虫教程(美女图片之类的劳逸结合你们懂得!!!) 点赞收藏博主更有创作动力哟,以后常更!!! 爬取目标 我们要爬取的网页是:htt

python爬取数据存入数据库,python爬虫保存数据-爱代码爱编程

大家好,小编来为大家解答以下问题,python将爬取的数据保存在哪个文件夹,python将爬取的数据保存在哪个文件,现在让我们一起来看看吧! 1、python把爬到的数据放到数据库(python爬虫怎么把爬的数据写进文件里) MySQL 是一个关系型数据库管理系统,由瑞典MySQLAB公司开发,目前属于Oracle旗下产品。MySQL是最流行

python项目开发实战:网络爬虫批量采集股票数据保存到excel中-爱代码爱编程

注意:本文的下载教程,与以下文章的思路有相同点,也有不同点,最终目标只是让读者从多维度去熟练掌握本知识点。 下载教程:Python项目开发实战_网络爬虫批量采集股票数据保存到Excel中_编程案例实例课程教程.pdf 1、详细阐述 在Python项目开发实战中,网络爬虫批量采集股票数据并保存到Excel文件,是一种高效、定制化的数据获取与管理

python爬虫(selenium)从网站获取信息并存入数据库(mysql)_python 爬取网页内容并保存到数据库-爱代码爱编程

简介: 在本篇博客中,我们将介绍如何使用Python编写一个简单的网络爬虫,从指定网站上获取图书信息,并将这些信息存入数据库。这个项目涉及到Python编程、selenium爬虫技术以及数据库操作等内容,适合对这些领域感兴趣的初学者。 1. 什么是网络爬虫? 网络爬虫(也称为网络蜘蛛、网络机器人)是一种自动获取网页内容的程序,它模拟人的行为去各个网站抓取

python,爬虫,把数据写进mysql数据库_论文编写爬虫采集需要的数据,把数据进行清洗,集成、转换、脱敏后写入mysql数-爱代码爱编程

学习了一段时间的爬虫,然后写了一个较为简陋的爬虫 先说一下,理论知识,后面上我的代码 :) 首先,你要先把你的项目文件,连接到数据库才可以,要不然就用不了SQL语句了 第一步: 第二步: 第三步:根据提示自己填好就行了,如果有问题可能是数据库版本的问题,建议5.7的 爬虫把数据写进数据库的方法通常包括以下步骤: 连接到数据库: