Webサイトのスクレイピングを試してみました。現在のデータベーステーブルからデータを正常にスクレイピングしました。ただし、「現在のテーブル」にレコードが存在しない場合にのみ「new_table」を挿入したいです
私のコードは(パイプライン)です
リーリー正常に動作せず、エラーが発生します。
リーリー一意の product_id を持っています。
現在のテーブルに product_id がない場合は、この product_id を「new_products」に挿入します
これどうやって作るの?
###ありがとう。最終編集: このエラーが発生しました。
ああああ
P粉2783794952024-03-30 00:30:37
存在しない場合に挿入したいだけの場合は、何もする必要はありません。すべてを選択して、探しているものがそこにあるかどうかを確認する必要はありません。
必要なのは、テーブル 2 の produc_id
に対する一意のインデックスを作成することです。次に、コードを次のように変更します:
リーリーON DUPLICATE KEY を使用すると、重複する行 (すでに存在する product_id) が見つかると、システムは product_id を同じ product_id に更新しようとするため、有効になりません。
autocommit=True が設定されている場合、これらのコミットは削除できます。
######編集######コメントで述べたように、テーブルにテーブルが存在しない場合にのみ新しいテーブルに挿入する必要がある場合は、コードを次のように変更できます。
rowパラメータの値を変更しているため、行
old_ids = [row[0] for row incursor.fetchall()]の変数名を変更する必要があります。 2. 問題は if ステートメントにあります。product_id 変数が存在しないため、変更する必要があります リーリー