データストレージに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 = '<div class="movie-item-info">.*?title="(.*?)".*?<p class="star">(.*?)</p>.*?class="releasetime">(.*?)</p>' 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 = 'insert into movieinfo values(%s,%s,%s)' # 整理数据 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__ == '__main__': 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 サイトの他の関連記事を参照してください。

ホットAIツール

Undress AI Tool
脱衣画像を無料で

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

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

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

人気の記事

ホットツール

メモ帳++7.3.1
使いやすく無料のコードエディター

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

ゼンドスタジオ 13.0.1
強力な PHP 統合開発環境

ドリームウィーバー CS6
ビジュアル Web 開発ツール

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

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

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

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

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

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

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

@ContextManagerFromContextLibandDefineAgeneratoratoraturationは、sexactlyOnceを使用します

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