目次
ストレージ データ テーブルの作成
Pymysql の基本的な使用法
クローラー プログラムを変更します。
ホームページ バックエンド開発 Python チュートリアル データストレージにPython Pymysqlを使用するにはどうすればよいですか?

データストレージにPython Pymysqlを使用するにはどうすればよいですか?

Apr 23, 2023 pm 08:34 PM
python pymysql

Python は、主に Pymysql モジュールを通じて MySQL データベースに接続し、操作します。ここでは、キャプチャしたデータを MySQL データベースに保存する方法を説明します。

ストレージ データ テーブルの作成

まず、MySQL データベースがコンピューターにインストールされていることを確認してから、次の手順に進みます:

# 1. 连接到mysql数据库
mysql -h227.0.0.1 -uroot -p123456
# 2. 建库
create database maoyandb charset utf8;
# 3. 切换数据库
use maoyandb;
# 4. 创建数据表
create table filmtab(
name varchar(100),
star varchar(400),
time varchar(30)
);

Pymysql の基本的な使用法

1) データベースに接続します

db = pymysql.connect('localhost','root','123456','maoyandb')

パラメータの説明:

  • localhost: ローカル MySQL サーバー アドレス、またはリモート データベースの IP アドレス。

  • root: データへの接続に使用されるユーザー名。

  • パスワード: データベースへの接続に使用されるパスワード、ローカル MySQL サーバーのパスワードは「123456」です。

  • db: 接続されたデータベースの名前。

2) カーソル オブジェクトの作成

cursor = db.cursor()

3) SQL コマンドの実行

execute() メソッドは、SQL ステートメントを実行するために使用されます。以下に示すように:

#第一种方法:编写sql语句,使用占位符传入相应数据
sql = "insert into filmtab values('%s','%s','%s')" % ('刺杀,小说家','雷佳音','2021')
cursor.excute(sql)
第二种方法:编写sql语句,使用列表传参方式
sql = 'insert into filmtab values(%s,%s,%s)'
cursor.execute(sql,['刺杀,小说家','雷佳音','2021'])

4) データの送信

db.commit()

5) データベースを閉じる

cursor.close()
db.close()

完全なコードは次のとおりです:

# -*-coding:utf-8-*-
import pymysql
#创建对象
db = pymysql.connect('localhost','root','123456','maoyandb')
cursor = db.cursor()
# sql语句执性,单行插入
info_list = ['刺杀,小说家','雷佳音,杨幂','2021-2-12']
sql = 'insert into movieinfo values(%s,%s,%s)'
#列表传参
cursor.execute(sql,info_list)
db.commit()
# 关闭
cursor.close()
db.close()

データのクエリ以下に示す結果:

mysql> select * from movieinfo;
------------- ------------ - ------ -----------
| 名前 | 星 | 時間 |
------------- ------ - ------------ -----------
| 暗殺、小説家 | 雷嘉音、楊冪 | 2021-2-12 |
--- -- -------- ------------------- ----------- セット内の
1 行 (0.01 秒) )

executemany() を使用して複数のデータを同時に挿入する、より効率的な方法もあります。例は次のとおりです:

db = pymysql.connect('localhost','root','123456','maoyandb',charset='utf8')
cursor = db.cursor()
# sql语句执性,列表元组
info_list = [('我不是药神','徐峥','2018-07-05'),('你好,李焕英','贾玲','2021-02-12')]
sql = 'insert into movieinfo values(%s,%s,%s)'
cursor.executemany(sql,info_list)
db.commit()
# 关闭
cursor.close()
db.close()

次のように挿入結果をクエリします:

mysql> select * from movieinfo;
----------- -- -----------------------------
| 名前 | 星 | 時間 |
---- -- ------- ------------------- ------------
| 私は神の神ではありません。医学 | Xu Zheng | 2018 -07-05 |
| こんにちは、李華英 | Jia Ling | 2021-02-12 |
------------- ----- ------ -------- ----- セット内の
2 行 (0.01 秒)

クローラー プログラムを変更します。

以下 クローラー プログラムを変更して、キャプチャしたデータを MySQL データベースに保存します。以下に示すように:

# coding=gbk
from urllib import request
import re
import time
import random
from ua_info import ua_list
import pymysql
class MaoyanSpider(object):
    def __init__(self):
        #初始化属性对象
        self.url = 'https://maoyan.com/board/4?offset={}'
        #数据库连接对象
        self.db = pymysql.connect(
            'localhost','root','123456','maoyandb',charset='utf8')
        #创建游标对象
        self.cursor = self.db.cursor()
    def get_html(self,url):
        headers = {'User-Agent':random.choice(ua_list)}
        req = request.Request(url=url,headers=headers)
        res = request.urlopen(req)
        html = res.read().decode()
        # 直接解析
        self.parse_html(html)
    def parse_html(self,html):
        re_bds = &#39;<div class="movie-item-info">.*?title="(.*?)".*?<p class="star">(.*?)</p>.*?class="releasetime">(.*?)</p>&#39;
        pattern = re.compile(re_bds,re.S)
        r_list = pattern.findall(html)
        self.save_html(r_list)
    def save_html(self, r_list):
        L = []
        sql = &#39;insert into movieinfo values(%s,%s,%s)&#39;
        # 整理数据
        for r in r_list:
            t = (
                r[0].strip(),
                r[1].strip()[3:],
                r[2].strip()[5:15]
            )
            L.append(t)
            print(L)
        # 一次性插入多条数据 L:[(),(),()]
        try:
            self.cursor.executemany(sql,L)
            # 将数据提交数据库
            self.db.commit()
        except:
            # 发生错误则回滚
            self.db.rollback()
    def run(self):
        for offset in range(0,11,10):
            url = self.url.format(offset)
            self.get_html(url)
            time.sleep(random.uniform(1,3))
        # 断开游标与数据库连接
        self.cursor.close()
        self.db.close()
if __name__ == &#39;__main__&#39;:
    start=time.time()
    spider = MaoyanSpider()
    spider.run()
    end=time.time()
    print("执行时间:%.2f" % (end-start))

データベース クエリは結果を次のように保存します:

mysql>select * from movieinfo;
---------------- ------------------ -------------------------------------- ---------- --
| 名前 -------------------------------------------------------- ---- -------
|私は医学の神ではありません| Xu Zheng、Zhou Yiwei、Wang Chuanjun Dun | 1994-09-10 |
| Green Paper | Vegeta&Middot; Mo Tengsen、Machサラ & ミッドドット; アリ、リンダ & ミッドドット; カドリーニ | 2019-03-01 |
| シーピアノ部門 | ティム・ロス、ビル・ナン、クラレンス・ウィリアムズ三世 | 2019-11-15 |
| 万引き家族 | 中川雅也、sakura ando、mayu matsuoka | -08-03 |
|私の側室| Zhang Guorong、Zhang Fengyi、Gong li | mo?-26 |
|人生は美しい|ロベルト・ベルニニ、ジュスティーノ・デュラノ、 Sergio Bini Busterik | 2020-01-03 |
| この殺人者は冷たすぎません | ジャン・レノ、ゲイリー・オールドマン、ナタリー・ポートマン; ディカプリオ、渡辺謙、ジョセフ・ゴードン=レヴィット---------- -------------------------------------- --- ------- -----
10 行セット (0.01 秒)

以上がデータストレージにPython Pymysqlを使用するにはどうすればよいですか?の詳細内容です。詳細については、PHP 中国語 Web サイトの他の関連記事を参照してください。

このウェブサイトの声明
この記事の内容はネチズンが自主的に寄稿したものであり、著作権は原著者に帰属します。このサイトは、それに相当する法的責任を負いません。盗作または侵害の疑いのあるコンテンツを見つけた場合は、admin@php.cn までご連絡ください。

ホットAIツール

Undress AI Tool

Undress AI Tool

脱衣画像を無料で

Undresser.AI Undress

Undresser.AI Undress

リアルなヌード写真を作成する AI 搭載アプリ

AI Clothes Remover

AI Clothes Remover

写真から衣服を削除するオンライン AI ツール。

Stock Market GPT

Stock Market GPT

AIを活用した投資調査により賢明な意思決定を実現

ホットツール

メモ帳++7.3.1

メモ帳++7.3.1

使いやすく無料のコードエディター

SublimeText3 中国語版

SublimeText3 中国語版

中国語版、とても使いやすい

ゼンドスタジオ 13.0.1

ゼンドスタジオ 13.0.1

強力な PHP 統合開発環境

ドリームウィーバー CS6

ドリームウィーバー CS6

ビジュアル Web 開発ツール

SublimeText3 Mac版

SublimeText3 Mac版

神レベルのコード編集ソフト(SublimeText3)

pythonでrequastion.txtファイルからパッケージをインストールする方法 pythonでrequastion.txtファイルからパッケージをインストールする方法 Sep 18, 2025 am 04:24 AM

Pipinstall-rrequirements.txtを実行して、依存関係パッケージをインストールします。競合を回避し、ファイルパスが正しく、PIPが更新されていることを確認し、必要に応じて-no-depsや-userなどのオプションを使用して、必要に応じてインストール動作を調整することを確認して、最初に仮想環境を作成およびアクティブ化することをお勧めします。

Pythonのコマンドライン引数を処理する方法 Pythonのコマンドライン引数を処理する方法 Sep 21, 2025 am 03:49 AM

theargparsemoduleisttherecommendedwayto handlecommand-lineargumentsinpython、robustparsing、typevalidation、helpmessages、およびerrorhandling; ousesys.argvforsimplecasesrequiringminimalsetup。

PytestでPythonコードをテストする方法 PytestでPythonコードをテストする方法 Sep 20, 2025 am 12:35 AM

Pythonは、Pythonのシンプルで強力なテストツールです。インストール後、命名ルールに従ってテストファイルが自動的に発見されます。アサーションテストのためにtest_から始まる関数を書き込み、 @pytest.fixtureを使用して再利用可能なテストデータを作成し、pytest.raisesを使用して例外を確認し、指定されたテストと複数のコマンドラインオプションをサポートし、テスト効率を改善します。

初心者から専門家まで:10必要のない無料のパブリックデータセットWebサイト 初心者から専門家まで:10必要のない無料のパブリックデータセットWebサイト Sep 15, 2025 pm 03:51 PM

データサイエンスの初心者にとって、「経験不足」から「業界の専門家」への飛躍の核心は継続的な実践です。実践の基礎は、豊かで多様なデータセットです。幸いなことに、インターネット上には無料のパブリックデータセットを提供する多数のWebサイトがあります。これは、スキルを向上させ、スキルを磨くための貴重なリソースです。

bipとは何ですか?なぜ彼らはビットコインの未来にとってそれほど重要なのですか? bipとは何ですか?なぜ彼らはビットコインの未来にとってそれほど重要なのですか? Sep 24, 2025 pm 01:51 PM

目次ビットコイン改善提案(BIP)とは何ですか?なぜBIPがそんなに重要なのですか?歴史的なBIPプロセスは、ビットコイン改善提案(BIP)でどのように機能しますか? BIPタイプの信号とは何ですか?鉱夫はそれをどのように送りますか? TaprootとBIP結論のクイックトライアルの短所は、2011年以来、ビットコイン改善提案または「BIP」と呼ばれるシステムを通じて行われています。ビットコイン改善提案(BIP)は、ビットコインが一般的に開発する方法のガイドラインを提供します。BIPには3つのタイプがあります。そのうち2つはビットコインの技術的変化に関連しています各BIPは、TWIを含むどこにでも集まるビットコイン開発者の間で非公式の議論から始まります。

ビッグデータ分析に適したコンピューターを選択する方法は?高性能コンピューティング用の構成ガイド ビッグデータ分析に適したコンピューターを選択する方法は?高性能コンピューティング用の構成ガイド Sep 15, 2025 pm 01:54 PM

ビッグデータ分析では、マルチコアCPU、大容量メモリ、階層型ストレージに焦点を当てる必要があります。 AmdepycやRyzenthreadripperなどのマルチコアプロセッサが優先され、コアの数とシングルコアの性能を考慮しています。メモリは64GBで始まるように推奨され、データの整合性を確保するためにECCメモリが推奨されます。ストレージは、NVMESSD(システムとホットデータ)、SatAssD(共通データ)、およびHDD(コールドデータ)を使用して、全体的な処理効率を改善します。

Pythonの@ContextManagerデコレーターを使用してコンテキストマネージャーを作成するにはどうすればよいですか? Pythonの@ContextManagerデコレーターを使用してコンテキストマネージャーを作成するにはどうすればよいですか? Sep 20, 2025 am 04:50 AM

@ContextManagerFromContextLibandDefineAgeneratoratoraturationは、sexactlyOnceを使用します

Pythonで毎日のタスク用の自動化スクリプトの書き方 Pythonで毎日のタスク用の自動化スクリプトの書き方 Sep 21, 2025 am 04:45 AM

repetitivetaskswsortomating、sosorganizingfilessorsendingningtumails、focusingonthosethatoccurfrequellyandtakesifatipime.2.useapsupratepythonlibrarieslikes、shotil、glob、smtplib、requests、beautifulsoup、anseleniumforferation、email、w

See all articles