書籍価格のスクレイパー開発・カスタマイズ

公開されている書籍の価格を表にまとめるPythonスクレイパー:書名、著者、ISBN、判型、価格、在庫

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

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

公開されている書籍の価格を表にまとめるPythonスクレイパー:書名、著者、ISBN、判型、価格、在庫

成果物の例

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

園芸用品の仕入れ先のカタログを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回価格を比べられるようにする。

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

このサービスについて

書店や古書店の方は、このスクレイパーで公開されているオンラインショップの価格を確認できます。書名、本に記載どおりの著者名、ISBN、出版社、刊行年、判型(ハードカバー、ペーパーバック、電子書籍)、価格、旧価格、在庫有無、リンク。各行にISBNがあるので、Excelでお客様のリストと照合できます。ショップのサイト、ジャンルか検索のページ、書籍ページ1つ、ブラウザから保存したページ1〜2ページをお送りください。Pythonのコード、設定ファイル、READMEをお渡しし、価格を見直すたびにお客様のパソコンで実行していただきます。読者や個人の出品者のデータは集めません。読み込むのは公開ページだけで、控えめなペースで動き、ログインやCAPTCHA・保護の回避は一切行わず、AmazonやGoogleは読み込みません。サイトの規約上問題ないかはお客様のご判断となり、のちにレイアウトが変わった場合は更新が必要です。

含まれる内容

  • 納品物Pythonのコード、設定ファイル、手順を一つずつ説明したREADMEを入れたZIPファイル。コードは注文ページでも確認できます。
  • 照合用のISBN専用の列に、Excelですぐ照合できる形で
  • 価格と旧価格数値で、隣に在庫も
  • 判型を分けてハードカバー、ペーパーバック、電子書籍を別々の行に
  • 控えめなペースページ間の待ち時間は設定ファイルで指定
  • お客様のパソコンで実行Windows、macOS、Linux(Python使用)

ご利用の流れ

  1. 1
    ページ数ショップ、ジャンル、保存した書籍ページ1つをお送りいただきます
  2. 2
    スクレイパーコードと実行ガイドを作成します
  3. 3
    実行実行して、いくつかの価格をショップと見比べていただきます
  4. 4
    修正プランの範囲内で修正を依頼し、エラーメッセージがあればお送りください

ご用意いただくもの

書店のサイトと具体的なページ:ジャンルか検索のリンクと書籍ページ1つのリンク、おおよその冊数。表の列順に並べた項目(例:書名、著者、ISBN、出版社、刊行年、判型、価格、旧価格、在庫有無、リンク)。それらのページを1〜2ページ、ブラウザから保存したもの(ファイル>名前を付けてページを保存)かスクリーンショット。特定の本だけを読み込みたい場合は、お客様のISBNリスト。

お伺いする内容:

  • どのショップとページですか?
  • 必要な項目
  • おおよその冊数は?
  • その他の要望

プランを比較

プランベーシックリンク先の書籍¥3,400スタンダードジャンル全体¥6,490プレミアム書店3つまで¥11,750
納期1日2日3日
修正回数123
サイト数11最大3
ページの種類12(カテゴリと書籍ページ)最大3
項目数最大10最大25各最大25
一覧の複数ページを巡回なしありあり
出力ファイルCSVExcelまたはCSVExcel、CSV、JSON
重複の削除、中断した所から再開なしなしあり
注文する ベーシック注文する スタンダード注文する プレミアム

安心決済

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

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

質問と回答

ショップの本と自社のリストを照合できますか?

ISBNを保存するので、Excelで照合できます。ページにISBNがない場合、書名での照合は確実ではないため、推測はしません。

AmazonやGoogle ブックスも読めますか?

いいえ。Amazon、Google、LinkedIn、SNSは規約で禁止されているため対象外です。その他の書店は、規約上問題なければ使えます。その判断はお客様にお任せします。

多くの出品者が出している古書の場合は?

公開ページに出品が並んでいれば、それぞれを価格と状態付きで1行にできます。出品者の多くは個人なので、出品者名は対象外です。

ショップがサイトを変えたら?

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

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

プラン