Webスクレイパー開発・カスタマイズ

Pythonで作るWebスクレイパー。公開ページのデータをCSVやExcelにまとめます:価格、カタログ、掲載情報

通常15 分で完成修正対応込み品質チェック
プラン
安心決済詳しく
  • プランの範囲内の修正は無料です。
  • 納品から3日以内にご対応がない場合、自動的に承認されます。

代金はお支払い時にお預かりし、納品を承認した時点ではじめて支払われます。

Pythonで作るWebスクレイパー。公開ページのデータをCSVやExcelにまとめます:価格、カタログ、掲載情報

成果物の例

スタンダードパッケージの例

園芸用品の仕入れ先のカタログをExcelにするスクレイパー

結果のイメージ

品番商品名価格在庫重量写真
GT-1042剪定ばさみ、20 mm18.90あり0.24 kg…/gt-1042.jpg
GT-1187折りたたみのこぎり、210 mm24.50あり0.31 kg…/gt-1187.jpg
GT-2210刈込ばさみ、波刃39.00なし1.10 kg…/gt-2210.jpg
GT-3305移植ごて、ステンレス9.80あり0.18 kg…/gt-3305.jpg
GT-4120ガーデンホース 25 m、1/2"42.00あり2.90 kg…/gt-4120.jpg

例のファイルには、52の一覧ページから集めた1,236件の商品が入っています。

コードの一部

def product_links(list_url: str) -> Iterator[str]:
    """一覧の全ページから商品ページのリンクを取得し、「次へ」をたどります。"""
    url: str | None = list_url
    while url:
        page = fetch(url)
        for card in page.select("div.product-card a.title"):
            yield urljoin(url, card["href"])
        next_link = page.select_one("a.pagination-next")
        url = urljoin(url, next_link["href"]) if next_link else None


def fetch(url: str) -> BeautifulSoup:
    """公開ページを1つ、控えめなペースで取得します。リクエストの間に待ち時間を置き、エラー時は数回やり直します。"""
    for attempt in range(3):
        time.sleep(settings.delay_seconds)
        response = session.get(url, timeout=30)
        if response.status_code == 200:
            return BeautifulSoup(response.text, "html.parser")
        log.warning("%s の応答は %s、3回中%d回目の試行", url, response.status_code, attempt + 1)
    raise ScraperError(f"{url} は3回試しても開けませんでした")

ファイル: scraper.py、settings.ini(開始ページ、リクエスト間の待ち時間、ファイル名)、requirements.txt、インストールと実行の方法を説明したREADMEを含むZIPファイル。読み込むのは公開ページだけで、2秒に1ページのペースで、最初にサイトのrobots.txtを確認します。お客様ご自身のパソコンで実行していただきます。

お客様: 仕入れ先の道具を再販している園芸用品のネットショップ。仕入れ先のウェブサイトには公開カタログがありますが、価格表のファイルはありません。 ご依頼内容: カタログの一覧ページを巡回してすべての商品ページを開き、品番、商品名、価格、在庫、重量、メイン写真のリンクをExcelに保存して、週に1回価格を比べられるようにする。

お客様とすべての情報は架空のものです。

このサービスについて

スクレイパーは、公開されたWebページで見られるデータを集めて表に保存します。商品の価格と在庫、ショップ用の仕入れ先カタログ、掲載情報、求人、イベント、記事など。対象サイトとページ、必要な項目(商品名、価格、リンク、画像など)をお伝えいただき、対象ページを1〜2ページ、ブラウザから保存したもの(ファイル>名前を付けてページを保存)かスクリーンショットでお送りください。実際のページ構造に合わせてPythonでスクレイパーを書き、結果をCSV、Excel、JSONで保存します。コード、URLとページ間の待ち時間を書いた設定ファイル、Pythonのインストール方法と実行方法を説明したREADMEをまとめたファイルをお渡しします。スクレイパーはお客様ご自身のパソコンで実行するため、データは直接お客様の手元に届きます。こちらがデータを集めたり保管したりすることはありません。読み込むのは公開ページだけで、相手サイトに負担をかけない控えめなペースで動き、ログイン、CAPTCHAなどの保護の回避、氏名・メールアドレス・電話番号といった個人データの収集は一切行いません。サイトのレイアウトが変わると、スクレイパーの更新が必要になる場合があります。サイトのデータを利用規約上集めて使ってよいかの判断は、お客様の責任となります。

含まれる内容

  • 納品物Pythonのコード、設定ファイル、手順を一つずつ説明したREADMEを入れたZIPファイル。コードは注文ページでも確認できます。
  • 必要な項目を、必要な表に列はご希望の順に
  • 実際のページに合わせてお送りいただいたページの構造をもとに作成
  • 控えめなペースページ間の待ち時間は設定ファイルで指定
  • お客様のパソコンで実行Windows、macOS、Linux(Python使用)
  • わかりやすいガイドインストールするものと実行方法を一つずつ

ご利用の流れ

  1. 1
    ページ数対象サイト、項目、保存したページ1〜2ページをお送りいただきます
  2. 2
    スクレイパーコードと実行ガイドを作成します
  3. 3
    実行実行して、表の最初の数行を確認していただきます
  4. 4
    修正プランの範囲内で修正を依頼し、エラーメッセージがあればお送りください

ご用意いただくもの

対象サイトと具体的なページ:一覧ページと個別ページのリンク、おおよそのページ数。必要な項目を表の列順に、それぞれの例付きで。実際の構造に合わせるため、対象ページを1〜2ページ、ブラウザからHTMLとして保存したもの(ファイル>名前を付けてページを保存)かスクリーンショット。必要な出力ファイル(CSV、Excel、JSON)と実行環境。

お伺いする内容:

  • 対象サイトとページは?
  • 必要な項目
  • おおよそのページ数は?
  • 出力ファイル
  • その他の要望

プランを比較

プランベーシック1種類のページ用スクレイパー¥3,870スタンダード一覧ページと個別ページ¥7,580プレミアム複数サイト・複数のページの種類¥13,760
納期1日2日3日
修正回数123
サイト数11最大3
ページの種類12(一覧と個別)最大3
項目数最大10最大25各最大25
一覧の複数ページを巡回なしありあり
出力ファイルCSVExcelまたはCSVExcel、CSV、JSON
重複の削除、中断した所から再開なしなしあり
注文する ベーシック注文する スタンダード注文する プレミアム

安心決済

お支払いは注文時ですが、代金が支払われるのは承認された納品に対してのみです。

  • 固定料金お支払い後にプランの料金が変わることはありません。
  • 代金はお預かりお支払い時、代金はお預かりするだけです。納品を承認した時点でサービス側に支払われます。
  • 納品前にチェックすべての成果物はお手元に届く前に品質チェックを受けます。承認前に注文ページで内容を確認できます。
  • 無料の修正依頼内容の範囲内で、プランで定められた回数まで修正を依頼できます。
  • 3日後に自動承認納品から3日以内に承認も修正依頼もない場合、自動的に承認されます。納品後に注文チャットでメッセージを送った場合、注文は保留されます。こちらから回答した後、3日間のカウントを再開することがあり、その際はチャットでお知らせします。
  • やり直しまたは全額返金結果が依頼内容と合わず修正でも解決しなかった場合、または作業に納期の2倍を超える時間がかかった場合は、注文チャットでご連絡ください。作業をやり直すか、代金を全額返金いたします。
詳しい仕組み →

質問と回答

サイトのスクレイピングは合法ですか?

公開データの収集は多くの場合認められていますが、サイトの利用規約やデータに関する法律は国によって異なるため、データを集めて使ってよいかはお客様にご判断いただきます。スクレイパーはログイン、保護の回避、個人データの収集を一切行わないため、安全な範囲にとどまります。

データの収集まで代わりにしてもらえますか?

いいえ。スクレイパーをお渡しし、お客様ご自身で実行していただきます。結果は直接お客様に届き、新しいデータが必要なときはいつでも再実行できます。

サイトが変わったり、スクレイパーがブロックされたりしたら?

スクレイパーは現在のページ構造に合わせて動きます。のちにサイトのレイアウトが変わった場合は更新が必要で、新しいご注文となります。控えめなペースで読み込みますが、それでもサイト側がアクセスを制限することはあります。そうした制限を回避することはしません。

Amazon、Google、SNSもスクレイピングできますか?

いいえ。これらのサービスは規約でこうしたデータ収集を禁止しており、多くのページはログインが必要で、個人データも含まれます。こうしたデータには、各サービスの公式APIやエクスポート機能をご利用ください。

プログラミングの知識は必要ですか?

いいえ。Pythonのインストール(最初に一度だけ)、スクレイパーに必要なものを1つのコマンドでインストールする方法、実行方法をREADMEで説明しています。JavaScriptで内容を表示するページには、ブラウザ用ライブラリ(Playwright)を使います。これについてもREADMEで説明しています。

答えが見つかりませんか?

プラン