Vistaprint 商品スクレイパー

単一の価格を持たない
印刷カタログ。

Vistaprint は印刷物を数量単位で販売しています。名刺50枚、次に100枚、次に500枚と、それぞれに別の単価があります。そのため商品ページには商品名、SKU、評価、説明はあっても、価格はまったくありません。このスクレイパーは17列を返しますが、そのうち6列は空で返ります。どの列がそうなのかは、登録後ではなく登録前にお伝えします。

初回のみ500行無料以降は1行 0.002ドル11列に値あり、6列は空CSV・JSON・Excel 形式
使い方

URLの一覧を入れると、表計算ファイルが出てくる

  1. ステップ 1プラットフォームにログインします。
  2. ステップ 2Vistaprint 商品スクレイパーを開きます。
  3. ステップ 3取得したい Vistaprint の商品URLを1行に1件ずつ貼り付けます。カテゴリーページや検索ページは避けてください。
  4. ステップ 4出力形式を選びます(CSV / JSON / XLSX)。
  5. ステップ 5ジョブを実行します。
  6. ステップ 6結果をダウンロードします - URLごとに1行、17列です。
想定しておくこと

実行する前に知っておくべきこと。

価格の列は空で返ります

実際の Vistaprint の行を返した2回の実行では、priceparsed_pricecurrencyavailability のすべてが空でした。これはスクレイパーの不足ではありません。商品ページを取得して構造化データを読んでみてください。Product ブロックには商品名、説明、SKU、MPN、ブランドが入っていますが、オファーのノードはなく、価格はどこにもありません。Vistaprint は数量と仕上げによって見積もるため、ページにはセルに入れられる単一の数字が存在しないのです。

返ってくるのは識別情報です

商品名、ブランド、SKU、評価、説明、画像URLは、実際の商品行すべてで値が入って返ってきました。Vistaprint の品目を自社のカタログと突き合わせ、どの商品が存在しどう説明されているかを追い、画像素材を取得するには十分です。価格比較を組み立てるには足りない、というだけです。

カテゴリーページや検索ページではなく、商品ページを渡してください

両方向の証拠があります。商品URLは完全な行を返しました。その一つ上のカテゴリーページは no product data found を返し、/search?q=… のURLは status: ok を返したものの name が「Search Results」で他のすべての項目は空でした。商品ではなくページタイトルです。Vistaprint 自身の robots.txt も、すべてのクローラーに対して /search を禁止しています。

Vistaprint は一部のリクエストを弾きます

手元の8回の実行のうち、3回が blocked (needs residential proxy) で返りました。そのうち1回は、8日後に成功したのと同じ名刺ページのURLでした。つまりブロックは実在し、かつ断続的です。8回の実行から成功率を提示するつもりはありませんし、どのようなスケジュールにも再試行を組み込むべきです。

images の項目をカンマで分割しないでください

imageimages は実際の2行とも同じ値を持っており、その値は Cloudinary の変換URLです。c_scale,dpr_auto,f_auto,q_auto:best といった具合です。カンマはURLの一部です。そこで分割すると、どこにも解決しない断片ができます。2行のうち1行は1,697文字の画像URLを持っていたので、列には余裕を持たせてください。

各行が何が起きたかを伝えます

最後の列は status で、サイトではなく当社のエクスポーターが書き込みます。8回の実行を通じて4種類の値をとりました。okblocked (needs residential proxy)no product data foundhttp 404 です。失敗した行も理由を持って必ず届きます。

取得できるもの

17列、うち11列に値

実際のエクスポートのヘッダー行から、シートの順序どおりに読み取ったものです。値が入っていることを確認できた列は、その値がどのようなものだったかを記しています。すべての行で空だった列は、そのことを記しています。

query
送信した Vistaprint のURL。多数の商品を含むエクスポートでも切り分けられるよう、各行に繰り返されます。当社のすべての行で url と完全に一致していました。
sku_code
商品コード。実際の2行では sku と同一で、PRD- に英数字8文字が続く形式でした。識別子の列が2つで値は1つ - どちらを使ってもかまいませんが、結合するなら両方を確認してください。このスキーマ系統では独立に埋まるためです。
product_url
正規の商品ページを入れる想定の列。手元のすべての行で空で、成功した行でも同じでした。代わりに url を使ってください。
name
ページに記載されているとおりの商品タイトル。当社の一方の行では「Standard Business Cards」、もう一方では「VistaPrint® Printed Baseball Cap」でした。登録商標記号に注意してください。ソースにそのまま入っており、セルにもそのまま残ります。
description
ページのマーケティング用の説明文。当社の行では150〜180文字程度でした。捨てずに読む価値があります。名刺の行では、レコード全体の中で価格に関する唯一の情報が、価格の列の数字ではなくこのテキスト内の言い回しでした。
parsed_price
価格を数値として入れる想定の列。すべての行で空です。表の下の注記をご覧ください。
price
表示どおりの価格を入れる想定の列。すべての行で空です。
currency
価格の通貨を入れる想定の列。すべての行で空で、これは価格がないことから当然そうなります。
availability
在庫状況を入れる想定の列。すべての行で空です。受注印刷の商品には、在庫品のような在庫状態がありません。
rating
平均評価。実際に返ってくる項目の一つで、当社の2行では「4.7」と「4.3」でした。数値ではなく文字列として届くので、並べ替えに使う前に変換してください。
reviews
レビュー件数を入れる想定の列。実際の2行とも空でした。商品ページ自身の構造化データには評価と並んでレビュー件数が公開されているにもかかわらずです。言い訳をせず、欠落として記録しておきます。
images
ページが持つすべての画像。実際の2行では image と同一でした。カンマで分割しないでください - カンマは Cloudinary の変換の一部です。
brand
メーカーまたはブランド。当社の2行とも「Vistaprint」で、自社ブランドの印刷会社なら当然の結果です。異なる値が出た場合は、エラーではなく情報として扱ってください。
sku
品目番号。実際の2行では sku_code と同一で、レコード中で最も有用な結合キーです。ページの構造化データが自らの SKU として公開している値そのものです。
url
その行が生成された元のアドレス。手元のすべての行で query と等しく、これらのリクエストがリダイレクトなしで処理されたことが分かります。
image
主画像を単独で持つ列。cms.cloudinary.vpsvc.com 上の Cloudinary URL が、rendering.documents.cimpress.io のレンダリング済みプレビューを包む形です。素材は写真として保存されているのではなく、リクエストごとに生成されます。当社の一つは1,697文字に達したので、固定幅の列では切り捨てられます。
status
Vistaprint ではなく当社のエクスポーターが書き込む行ごとのフラグ。8回の実行を通じて4種類の値をとりました。okblocked (needs residential proxy)no product data foundhttp 404 です。行数ではなくこの列で突き合わせてください。

1行あたり17列 · CSV・JSON・Excel の3形式

価格の4列が空である理由を、はっきり述べます。手元には8回の実行があり、そのうち2回が実際の Vistaprint の商品行を返しましたが、どちらでも priceparsed_pricecurrencyavailability は空文字列でした。これはスクレイパーの欠陥ではありません。この2つの商品ページを直接取得すると、745〜843 KB ほどのサーバー側でレンダリングされた HTML が返り、その ld+json には商品名、説明、SKU、MPN、ブランドを持つ Product ブロックが含まれています。そしてオファーのノードはなく、いかなる価格もありません。Vistaprint は数量、素材、仕上げによって見積もるため、ページが公開できる、あるいは当社が読み取れる単一の商品価格が存在しないのです。同じ構造化データにある評価と SKU は当社のエクスポートと完全に一致しており、これらの行が解析ミスではなく本物であると分かるのはそのためです。Vistaprint の価格が必要な業務であれば、このサービスはそれを提供しませんし、どのような設定でも変わりません。

よくある使い方

識別情報で何ができるか。

カタログの突き合わせ

自社のレコードを相手方に合わせる

sku はきれいな PRD- 形式で届き、商品ページが自らの SKU として公開している値と同じなので、信頼できる結合キーになります。namebrand と組み合わせれば、Vistaprint の品目リストを自社のものと、文章での照合なしに突き合わせられます。

EC運用 · カタログ
品揃えの追跡

いくらかではなく、何があるかを見張る

商品URLのセットを定期的に実行し、namedescriptionrating を実行日とともに保存します。商品は誰かが告知するよりもずっと頻繁に改名され、位置づけを変え、説明を書き換えられます。その系列がそれを示してくれます。

カテゴリー調査 · 品揃え
画像とテキスト

説明文とレンダリング済み画像を取得する

descriptionimage は値が入って返ります。画像は保存された写真ではなく Cloudinary のライブレンダリングなので、URLを成果物として扱い、ファイルが必要になった時点で取得してください。

コンテンツ · 補完
評価のスナップショット

評価の推移を追う

rating は確実に届く項目の一つです。文字列なので、まず変換してください。reviews は空で返ることを忘れずに。母数の分からないスコアだけが手元にある状態です。推移を見るには十分ですが、商品同士を順位づけするには足りません。

商品調査 · レビュー
料金

実際に使った分だけの支払い。

無料枠

最初の500行は無料

登録時に初回のみ。カード不要で、後から解約するものもありません。

登録時に初回のみ
単価

以降は1行 0.002ドル

実際に返された行数で課金されます。成功以外の status で返ってきた行は商品データの行ではないため、そのようには課金されません。

返された行数で課金
サブスクリプションなし

継続課金はありません

クレジットは月次で失効しません。作業がそういう形なら、3月にカタログを一巡させて9月まで何もしない、という使い方でかまいません。

月次の失効なし
初回の有料実行が10%オフ。お支払い時にコード LIVESCRAPER10 をご利用ください。
登録する
組み合わせると便利

別のカタログ、同じ17列

法的な話

Vistaprint のスクレイピングは合法ですか。

一般に公開されているページ上の商品情報は、ごく普通の競合情報です。ここで挙げておくべき注意点は、どのページを要求するかと、画像素材をどう扱うかにあります。

商品名、ブランド、SKU、評価は、販売されている品物についての事実です。どの訪問者にも配信されるページからそれを読み取ることは、バイヤーが手作業でしていることを実用的な速度で行うのと同じ行為です。17列のどこにも個人を表す情報はありません。氏名も、メールアドレスも、電話番号も、アカウントもないため、個人情報を扱うサービスで問題になるデータ保護の論点は、ここでは生じません。

このサイトに固有の注意点が2つあります。1つ目は、どのページを要求するかです。Vistaprint の robots.txt には一般のクローラー向けの包括的な Disallow: / はなく、当社が確認した商品パスも禁止されていません。ただし /search はすべてのエージェントに対して禁止されています。これが重要なのは、このサービスの公開されている入力例に検索URLが含まれており、当社自身の実行の一つもそれを送信したからです。いずれにせよページタイトルだけで商品は返りませんでしたので、助言と礼儀は同じ方向を指しています。商品URLを送信してください。2つ目は画像素材です。画像の項目は Vistaprint 自身の仕組みが生成したプレビューに解決され、そのレンダリングも隣にある説明文も、誰かの著作物です。カタログの突き合わせ、補完、監視のために社内で使うことは一般的な実務ですが、自社のものとして公開するのは別の問いであり、答えも別です。

当社の条件は、ここにある他のサービスと同じです。一般に公開されているページのみ、ログインの先には入らず、データ層に第三者のトラッカーは置かず、エクスポートは30日後に自動削除されます。最初の500行は無料で、クレジットカードは不要です。

livescraper.app · 実行の前提
1行につき商品URL 1件
カテゴリーや検索ではなく商品ページ
価格データなし - ページが公開していません
匿名アクセスのみ
エクスポートは30日後に自動削除
このサービスが唯一お渡しできないのが Vistaprint の価格です。それはスクレイパーではなく、情報源の側の性質です。
よくある質問

登録前に寄せられる質問。

エクスポートに Vistaprint の価格は含まれますか。+
含まれません。実際の商品行を返した2回の実行では、priceparsed_pricecurrencyavailability は空でした。理由は情報源の側にあります。Vistaprint の商品ページを取得すると、その構造化データには商品名、説明、SKU、MPN、ブランドを持つ Product ブロックがありますが、オファーのノードはなく、価格もまったくありません。Vistaprint は数量と仕上げで見積もるため、ページに単一の価格が存在しないのです。どの設定でもこれは変わりません。
実際に値が入って返るのはどの列ですか。+
手元の実際の行では、17列のうち11列です。querynamebrandskusku_coderatingurldescriptionimageimagesstatus。すべての行で空だった6列は、priceparsed_pricecurrencyavailabilityreviewsproduct_url です。
エクスポートにはどの列が含まれますか。+
17列で、順序は次のとおりです。querysku_codeproduct_urlnamedescriptionparsed_pricepricecurrencyavailabilityratingreviewsimagesbrandskuurlimagestatus。送信した商品ページごとに1行です。
カテゴリーページや検索URLを送信できますか。+
送信はできますが、商品は得られません。当社の実行では、カテゴリーページは no product data found を返し、/search?q=… のURLは status: ok を返したものの name が「Search Results」で他のすべての項目は空でした。Vistaprint の robots.txt も、すべてのクローラーに対して /search を禁止しています。商品URLを送信してください。
リクエストはブロックされますか。+
ときどきされます。手元の8回の実行のうち3回が blocked (needs residential proxy) で返り、そのうち1回は8日後に成功したのと同じURLでした。8回は成功率を示すにはあまりに小さい標本なので提示しませんが、すんなり通ると想定せず、再試行を見込んでおいてください。
なぜ sku と sku_code が同じで、image と images も同じなのですか。+
当社の実際の2行では同一の値が入っていました。識別子は PRD- に英数字8文字、画像は Cloudinary のURLが1つです。このスキーマは、両者が異なる別のカタログとも共有されているため対を保っています。結合キーを決める前に両方を確認してください。ひとつ注意点があります。images には Cloudinary の変換に属するカンマが含まれるため、この項目をカンマで分割するとURLが壊れます。
status の列は何を意味しますか。+
Vistaprint ではなく当社のエクスポーターが書き込むもので、その行が取得できたかどうかを伝えます。8回の実行を通じて4種類の値をとりました。okblocked (needs residential proxy)no product data foundhttp 404 です。失敗した行も理由を持って届くので、入力リストと突き合わせられます。
料金はいくらですか。+
最初の500行は初回のみ無料で、カードは不要です。以降は1行 0.002ドルで、実際に返された行数で課金されます。サブスクリプションはなく、クレジットの月次失効もありません。
どの形式で出力できますか。+
CSV・JSON・Excel の3形式です。17列とその順序は、どの形式でも同じです。

カタログを表として手に入れる。

送信した商品URLごとに、商品名、ブランド、SKU、評価、説明、画像。そして Vistaprint が価格を公開していない箇所には、正直に空のセルを。最初の500行は無料、以降は1行 0.002ドルです。

すぐに有効 · カード不要

Vistaprint の商品データを取得する

Vistaprint は名刺、チラシ、サイン、ブランド入りの衣類やバッグといったカスタム印刷物・販促品を小規模事業者に販売しており、それを数量単位で売っています。この商売の仕組みは、スクレイピングの前に理解しておくべき最も重要なことです。商品ページが何を伝えられて何を伝えられないかを、これが決めているからです。名刺50枚、200枚、1,000枚、どの用紙か、どの仕上げか - これらはすべて、ひとつの商品に対する別々の価格です。したがってページに単一の価格はありません。

これは推測ではありません。このページの根拠となる実行のうち、実際の Vistaprint の行を返した2回はいずれも priceparsed_pricecurrencyavailability が空で返っており、同じ2つの商品ページを直接取得すると理由が分かります。それぞれ745〜843 KB ほどのサーバー側でレンダリングされた HTML を返し - この系統の一部のカタログとは異なり、JavaScript の外枠ではありません - その ld+json には商品名、説明、SKU、MPN、ブランドを持つ Product ブロックがある一方で、オファーのノードはなく、価格はどこにもありません。その構造化データに公開されている評価と SKU は当社のエクスポートと完全に一致しており、これによって行が本物であること、そして空のセルが当社ではなく情報源のものであることが分かります。

返ってくるのは識別情報です。手元の実際の行では、17列のうち11列に値が入っていました。送信したURL、商品名、ブランド、識別子の2項目、評価、解決後のURL、説明、画像の2項目、そしてステータスです。識別子は PRD- に英数字8文字が続く形で届き、ページ自身の構造化データが SKU と呼んでいるものと一致するため、自社レコードに対する信頼できる結合キーになります。画像は保存された写真ではなく、リクエストごとにレンダリングされるプレビューを包む Cloudinary のURLで、当社の一つは1,697文字に達しました。固定幅の列なら切り捨てられる長さであり、変換の内部にカンマを含むため、この項目をカンマで分割するとURLが壊れます。

実務上の注意が2つあります。商品URLを送信してください。当社の実行では、カテゴリーページは no product data found を返し、検索URLは name が「Search Results」で他はすべて空の行を返しました。Vistaprint の robots.txt もすべてのクローラーに対して /search を禁止しているので、礼儀にかなう道と役に立つ道は一致しています。そして断続的なブロックを見込んでください。8回の実行のうち3回が blocked (needs residential proxy) を返し、その中には8日後に成功したURLも含まれます。8回は成功率を示すには小さすぎる標本なので提示しません。代わりに再試行を組み込んでください。一般に公開されているページのみ、データ層に第三者のトラッカーは置かず、エクスポートは30日後に自動削除されます。最初の500行は無料で、クレジットカードは不要です。