firecrawl スクレイピング 見てみた

# firecrawlって何よ？

スクレイピングを簡単にするAPI。
サイトが変わる事に色々変更しなきゃいけないの面倒だよね。
それをAIで解析して抽出するから、ページが変わってもそのまま使えるらしい。

参考
https://blog.elcamy.com/posts/9cc4e108/#%E3%81%95%E3%81%82%E3%80%81Firecrawl%20API%E3%82%92%E4%BD%BF%E3%81%A3%E3%81%A6%E3%81%BF%E3%82%88%E3%81%86%EF%BC%81

# お試し
https://www.firecrawl.dev/playground

extract を 選択し、What data do you want to extract?に
「https://finance.yahoo.co.jp/stocks/ranking/dividendYield?market=all
の株式ランキングのデータをjson形式でスクレイピングして下さい」と入力

```
[
  {
    "stock_rankings": [
      {
        "rank": 1,
        "market": "東証PRM",
        "ticker": "4310",
        "company_name": "(株)ドリームインキュベータ",
        "dividend_yield": "+10.82%"
      },
      {
        "rank": 2,
        "market": "東証STD",
        "ticker": "3205",
        "company_name": "(株)ダイドーリミテッド",
        "dividend_yield": "+9.63%"
      },
      {
        "rank": 3,
        "market": "名証NXT",
        "ticker": "3775",
        "company_name": "(株)ガイアックス",
        "dividend_yield": "+7.96%"
      },
      {
        "rank": 4,
        "market": "東証STD",
        "ticker": "4293",
        "company_name": "(株)セプテーニ・ホールディングス",
        "dividend_yield": "+7.78%"
      },
      {
        "rank": 5,
        "market": "東証STD",
        "ticker": "5950",
        "company_name": "日本パワーファスニング(株)",
        "dividend_yield": "+7.49%"
      },
      {
        "rank": 6,
        "market": "東証STD",
        "ticker": "4595",
        "company_name": "(株)ミズホメディー",
        "dividend_yield": "+6.90%"
      },
      {
        "rank": 7,
        "market": "東証STD",
        "ticker": "9308",
        "company_name": "乾汽船(株)",
        "dividend_yield": "+6.71%"
      },
      {
        "rank": 8,
        "market": "東証PRM",
        "ticker": "7296",
        "company_name": "(株)エフ・シー・シー",
        "dividend_yield": "+6.69%"
      },
      {
        "rank": 9,
        "market": "東証PRM",
        "ticker": "2491",
        "company_name": "バリューコマース(株)",
        "dividend_yield": "+6.62%"
      },
      {
        "rank": 10,
        "market": "東証",
        "ticker": "2989",
        "company_name": "東海道リート投資法人",
        "dividend_yield": "+6.50%"
      },
      {
        "rank": 11,
        "market": "東証",
        "ticker": "2971",
        "company_name": "エスコンジャパンリート投資法人",
        "dividend_yield": "+6.45%"
      },
      {
        "rank": 12,
        "market": "東証",
        "ticker": "8985",
        "company_name": "ジャパン・ホテル・リート投資法人",
        "dividend_yield": "+6.42%"
      },
      {
        "rank": 13,
        "market": "東証PRM",
        "ticker": "7226",
        "company_name": "極東開発工業(株)",
        "dividend_yield": "+6.38%"
      },
      {
        "rank": 14,
        "market": "東証PRM",
        "ticker": "9104",
        "company_name": "(株)商船三井",
        "dividend_yield": "+6.37%"
      },
      {
        "rank": 15,
        "market": "東証STD",
        "ticker": "287A",
        "company_name": "黒田グループ(株)",
        "dividend_yield": "+6.30%"
      },
      {
        "rank": 16,
        "market": "東証PRM",
        "ticker": "8007",
        "company_name": "高島(株)",
        "dividend_yield": "+6.23%"
      },
      {
        "rank": 17,
        "market": "東証",
        "ticker": "3492",
        "company_name": "タカラレーベン不動産投資法人",
        "dividend_yield": "+6.21%"
      },
      {
        "rank": 18,
        "market": "東証PRM",
        "ticker": "9744",
        "company_name": "(株)メイテックグループホールディングス",
        "dividend_yield": "+6.21%"
      },
      {
        "rank": 19,
        "market": "東証",
        "ticker": "3290",
        "company_name": "Oneリート投資法人",
        "dividend_yield": "+6.15%"
      },
      {
        "rank": 20,
        "market": "東証",
        "ticker": "3470",
        "company_name": "マリモ地方創生リート投資法人",
        "dividend_yield": "+6.12%"
      }
    ]
  }
]

```

20個取得できました。
しかし、それ以上は取得できないのでAPI版にしたらできるのかな？


# プラン一覧

| プラン名                   | クレジット              | 料金           | 年間料金 (年払い)               | スクレイピング容量         | スクレイピング速度            | クロール速度       | 利用席数 | サポート       |
|----------------------------|-------------------------|----------------|---------------------------------|----------------------------|-------------------------------|--------------------|----------|----------------|
| **無料プラン**             | 500クレジット (1回限り)  | $0             | -                               | 500ページ                  | 10 /スクレイピング/分           | 1クロール/分       | -        | -              |
| **趣味プラン**             | 月額3,000クレジット      | $16/月         | $228/年 or $190/年 (年払い)      | 3,000ページ*               | 20 /スクレイピング/分           | 3クロール/分       | 1席      | -              |
| **標準プラン (最も人気)**   | 月額100,000クレジット    | $83/月         | $1188/年 or $990/年 (年払い)     | 100,000ページ*             | 100 /スクレイプ/分              | 10クロール/分      | 3席      | 標準サポート   |
| **成長プラン**             | 月額50万クレジット       | $333/月        | $4788/年 or $3990/年 (年払い)    | 500,000ページ*             | 1000 /スクレイプ/分             | 50クロール/分      | 5席      | 優先サポート   |

# クレジット消費

1クレジットあたりAPI クレジット
クレジットはエンドポイントと機能に応じて、API リクエストごとに消費されます。

| 特徴                   | クレジット         |
|------------------------|--------------------|
| スクレイプ（/scrape）  | 1 / ページ         |
| JSON形式               | 5 / ページ         |
| クロール（/crawl）     | 1 / ページ         |
| 地図(/map)             | 1 / 通話           |
| 検索(/検索)            | 1 / ページ         |
| 抽出(/extract)         | 新しい（別途料金） |

# extract は別料金

| プラン              | 月額       | 年額 (年払い)         | クレジット付与条件                 | トークン/年   | レート制限     | サポート          | アクション     |
|-------------------|------------|----------------------|----------------------------------|--------------|----------------|------------------|---------------|
| 無料              | 0ドル       | 一度                  | -                                | 50万         | 1分あたり10回   | コミュニティ      | サインアップ   |
| スターター        | 89ドル      | $1,188 ($1,068)       | すべてのクレジットは前払いで付与されます | 1800万       | 1分あたり20回   | メール            | 購読する       |
| エクスプローラ (最も人気 🔥) | 359ドル     | $4,788 ($4,308)       | すべてのクレジットは前払いで付与されます | 8400万       | 100 / 分        | スラック           | 購読する       |
| プロ (最高の価値)  | 719ドル     | $9,588 ($8,628)       | すべてのクレジットは前払いで付与されます | 1億9200万    | 1000 /分       | Slack + 優先度    | 購読する       |
| 企業              | カスタム     | 年払い                | -                                | 制限なし     | カスタム        | カスタム（SLA、専任エンジニア） | ご相談ください |

高い・・・。


以上


スクレイピング経験者として思うのは、
・webサイトの変更でコードを書き直さなければいけない
・IPアドレスを変更してバレないようにしなきゃいけない（ブロック対策）

などの手間がすごくかかるが、
これを使えばある程度防げそうなので人件費を考えるとありかな。


某ブランドの出力プロンプト

これは、良いんじゃないですかね。
日本語でスクレイピングしてくれて、ブロックされない。
これはすごい。

```
◯◯日本のみ、女性◯◯一覧と、その商品のurlをjson出力
```