Cursor(https://www.cursor.so/)は、GPT-4 によって駆動される強力なコードエディタであり、プログラマーが日常のコーディングを補助することができます。
この例は、ウェブページのスクレイピングを行っています。スクレイピングの対象は、以下の画像に示すように、百度のトップページの百度のトレンドです。
私は 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 でインストールするように指示しました。
実行した結果、出力結果が空の配列であることがわかりました。
エラーを GPT-4 にフィードバックし、CSS セレクターを確認するように提案されました。
ウェブページの構造に問題がないことを確認し、GPT-4 にフィードバックしました。さらに、百度のスクレイピング対策を回避するために、HTTP の User-Agent ヘッダーを変更するように提案されました。
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();