Python は mysql に接続し、データを書き込みます (単純なクローラー)


1. Python で一連のデータを mysql に書き込みます。主なポイントは、python とMySQL の間の初期接続を実現することです。root -p in DOS ログインするためのパスワードを入力してください。そうしないと、接続でエラーが報告されます。別のモジュールをダウンロードして解決できますが、ログインする必要はないと思います。そうしないと、モジュールが多すぎます db 
= pymysql.Connect(host='localhost', port=3306, user ='root', # データベースに接続 MySQL 
                     passwd='******', database='db_securities', charset='utf8') #これは pymysql.Connect 関数です。その中のパラメーターを調べることができます。直接取得するだけです 使用するには、パスワードを変更するだけで済みます。 db_securities' 
cursor = db.cursor() # カーソルを完全に作成します
sql = """ # 典型的な SQL ステートメントを str の形式で
挿入します t_pe(date, 10yearsyotb, cna, hs300, zz500, zz1000, cyb, kcb, shch , hkt, nsdq100)
値 ('2022-10-21', 2.7287, 16.36, 10.98, 20.96, 28.35, 45.43, 40.4, 54.72, 36.95, 23.45) 
""
cursor.execute(sql) # SQL ステートメントを実行するのは ";+enter" と同等で、SQL が検出された場合は; end、Enter キーを押して実行します
db.commit() # ハードディスクに書き込むコマンドをサブミットしますが、ランダムに変更しない場合、MySQL はデフォルトでサブミットします
cursor.close() # カーソルを閉じます
db.close() # データベースを閉じます

 

2. Python は mysql に接続し、単純なクローラー データを書き込みます。json インポート リクエストを中心に
#クローラー リクエスト モジュール
import re #通常のマッチング モジュール
インポート json #転送モジュール、辞書のような文字列を辞書に変換し、辞書の文字列を辞書に変換します、とにかく非常に強力です
import pymysql 
index_tuple = [] # クロールされたデータを配置する空のリストを作成します
headers = {'user-agent': 'Mozilla/5.0 (Windows NT 10.0; WOW64)' 
                         'AppleWebKit/537.36 (KHTML , Gecko など) Chrome/86.0.4240.198 Safari/537.36'} # 'user-agent' をコピーして、クローラーがユーザーをよりリアルにシミュレートできるようにします。また、Cookie とプロキシ IP を使用することもできます (無料のものはあまり使用されていません) ルール= 
r 'quote: (.*),' # 通常のマッチングルールを指定し、ウェブページのソースコードデータを見て、必要なデータの先頭と末尾は何か、マッチングする response = requests.get(' 
https://xueqiu.com /S/SH000001', headers=headers) # get リクエストを送信します。post リクエストにはインタラクティブなパラメーターが必要です。たとえば、検証コードを入力する場合は、data = result[0] # 
response .text) # 結果に一致します。一致は ['{target data}'] のタイプです
リストから「{対象データ}」を取り出す
data1 = json.loads(data) # json を使用して辞書に復元し、キーに従って値を取得し、これを繰り返しますクローラー部分と最初の部分 接続
index_tuple.extend([float(data1['current']), data1['amount']/100000000]) 
response = requests.get('https://xueqiu.com/S/ SZ399006', headers=headers) 
result = re.findall(rule, response.text) 
data = result[0] 
data1 = json.loads(data) 
index_tuple.extend([float(data1['current']), data1[ '金額']/100000000] ) 
index_list = [] 
asd = round(index_tuple[1]+index_tuple[3],2) 
date = '2022-10-21' 
db = pymysql.Connect(host='localhost', port =3306, user='root ', # データベースに接続 MySQL 
                     passwd='******', database='db_securities', charset='utf8')
カーソル = db.cursor()
sql = "insert into t_index(date, Shanghai Composite Index, GEM Index, 2 market turnover, GEM turnover)" \ "
      " values('%s', '%.2f', '%.2f', '%.2f', '%.2f')" %(date, index_tuple[0], index_tuple[4], asd, index_tuple [5]) 
cursor.execute(sql) 
db.commit() 
cursor.close() 
db.close()

 

おすすめ

転載: blog.csdn.net/lizhyangmm/article/details/127463099