cyoyo

cyoyo

人生就像一场旅行,不必在乎目的地,只要沿途有美景,内心有阳光。

カーソル:GPT-4で駆動される強力なコードエディター、聞いたことありますか?

Cursor(https://www.cursor.so/)は、GPT-4 によって駆動される強力なコードエディタであり、プログラマーが日常のコーディングを補助することができます。

1679124987(1)
この例は、ウェブページのスクレイピングを行っています。スクレイピングの対象は、以下の画像に示すように、百度のトップページの百度のトレンドです。

1679125033(1)
私は JavaScript を使用して実装しました。

同時に Ctrl + K を押すと、次のようなヒントが表示されます:https://www.baidu.com/ の百度のトレンドをスクレイピングします。

Cursor はすぐに以下のコードを提供しました。

// 使用 axios 和 cheerio 库抓取 https://www.baidu.com/ 网站上的百度热搜

const axios = require("axios");
const cheerio = require("cheerio");

async function fetchBaiduHotSearch() {
  try {
    const response = await axios.get("https://www.baidu.com/");
    const $ = cheerio.load(response.data);
    const hotSearchList = [];

    $(".hotsearch-item").each((index, element) => {
      const title = $(element).find(".title-content-title").text().trim();
      hotSearchList.push(title);
    });

    console.log(hotSearchList);
  } catch (error) {
    console.error("Error fetching Baidu Hot Search:", error);
  }
}

fetchBaiduHotSearch();

私の質問は:このコードは実行できますか?

GPT-4 は、このコードの動作原理を説明し、axios と cheerio ライブラリを npm でインストールするように指示しました。

私の質問は:このコードは実行できますか?

GPT-4 は、このコードの動作原理を説明し、axios と cheerio ライブラリを npm でインストールするように指示しました。

1679125162(1)
実行した結果、出力結果が空の配列であることがわかりました。

エラーを GPT-4 にフィードバックし、CSS セレクターを確認するように提案されました。

1679125190(1)

ウェブページの構造に問題がないことを確認し、GPT-4 にフィードバックしました。さらに、百度のスクレイピング対策を回避するために、HTTP の User-Agent ヘッダーを変更するように提案されました。

1679125212(1)
GPT-4 が提供したコードに従って修正を行いました。実行すると、正しい結果が得られます。
以下は最終的に生成されたコードです:


const axios = require("axios");
const cheerio = require("cheerio");

async function fetchBaiduHotSearch() {
  try {
    const response = await axios.get("https://www.baidu.com/", {
      headers: {
        "User-Agent":
          "Mozilla/5.0 (Windows NT 10.0; Win64; x64) AppleWebKit/537.36 (KHTML, like Gecko) Chrome/58.0.3029.110 Safari/537.3",
        Referer: "https://www.baidu.com/",
      },
    });

    const $ = cheerio.load(response.data);
    const hotSearchList = [];

    $(".hotsearch-item").each((index, element) => {
      const title = $(element).find(".title-content-title").text().trim();
      hotSearchList.push(title);
    });

    console.log(hotSearchList);
  } catch (error) {
    console.error("Error fetching Baidu Hot Search:", error);
  }
}

fetchBaiduHotSearch();
読み込み中...
文章は、創作者によって署名され、ブロックチェーンに安全に保存されています。