「現在のテーブル」にレコードが存在しない場合にのみ、「new_table」への Scrapy INSERT
P粉122932466
P粉122932466 2024-03-29 19:36:16
0
1
377

Webサイトのスクレイピングを試してみました。現在のデータベーステーブルからデータを正常にスクレイピングしました。ただし、「現在のテーブル」にレコードが存在しない場合にのみ「new_table」を挿入したいです

私のコードは(パイプライン)です

リーリー

正常に動作せず、エラーが発生します。

リーリー

一意の product_id を持っています。

現在のテーブルに product_id がない場合は、この product_id を「new_products」に挿入します

これどうやって作るの?

###ありがとう。

最終編集: このエラーが発生しました。

ああああ

P粉122932466
P粉122932466

全員に返信(1)
P粉278379495

存在しない場合に挿入したいだけの場合は、何もする必要はありません。すべてを選択して、探しているものがそこにあるかどうかを確認する必要はありません。

必要なのは、テーブル 2produc_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 変数が存在しないため、変更する必要があります リーリー

いいねを押す +0
人気のチュートリアル
詳細>
最新のダウンロード
詳細>
ウェブエフェクト
公式サイト
サイト素材
フロントエンドテンプレート