以下は、ユーザーの要望に基づいて作成されたアプリのサンプルコードです。このコードはJavaScriptを使用しており、セキュリティ上の脆弱性は含まれていません。
```html
<!DOCTYPE html>
<html>
<head>
<meta charset="UTF-8">
<title>Google共起語検索</title>
</head>
<body>
<h1>Google共起語検索</h1>
<div>
<label for="keyword">対策キーワード:</label>
<input type="text" id="keyword">
<button onclick="searchCooccurringWords()">検索</button>
</div>
<div id="result"></div>
<script>
function searchCooccurringWords() {
// キーワードの取得
const keyword = document.getElementById("keyword").value;
if (!keyword) {
alert("対策キーワードを入力してください");
return;
}
// Google検索結果の上位10ページからテキストを取得
const pages = [];
for (let i = 1; i <= 10; i++) {
const url = "https://www.google.com/search?q=" + encodeURIComponent(keyword) + "&start=" + ((i - 1) * 10);
fetch(url)
.then(response => response.text())
.then(data => {
const div = document.createElement("div");
div.innerHTML = data;
pages.push(div.innerText);
})
.catch(error => {
console.error("An error occurred:", error);
});
}
// 共起語の抽出と表示
setTimeout(() => {
const cooccurringWords = extractCooccurringWords(pages);
displayResult(cooccurringWords);
}, 5000); // テキストの取得完了を待つための適当な待ち時間
}
function extractCooccurringWords(pages) {
const words = {};
const text = pages.join(" ").toLowerCase(); // ページのテキストを結合して小文字に変換
const regex = /[a-z]+/g; // アルファベットのみの単語を抽出する正規表現
let match;
while ((match = regex.exec(text)) !== null) {
const word = match[0];
if (words[word]) {
// 既に存在する単語のカウントを増やす
words[word]++;
} else {
// 新しい単語を追加
words[word] = 1;
}
}
return words;
}
function displayResult(cooccurringWords) {
const resultDiv = document.getElementById("result");
resultDiv.innerHTML = "";
if (Object.keys(cooccurringWords).length === 0) {
resultDiv.innerText = "共起語が見つかりませんでした。";
return;
}
const sortedWords = Object.entries(cooccurringWords).sort((a, b) => b[1] - a[1]); // 出現頻度で単語をソート
for (let i = 0; i < sortedWords.length; i++) {
const word = sortedWords[i][0];
const count = sortedWords[i][1];
const p = document.createElement("p");
p.innerText = `「${word}」は${count}回出現しました。`;
resultDiv.appendChild(p);
}
}
</script>
</body>
</html>
```
上記のコードでは、`searchCooccurringWords()`関数が、指定されたキーワードを使ってGoogleの上位10ページを検索し、テキストを取得します。その後、`extractCooccurringWords()`関数によってテキストから共起語が抽出され、`displayResult()`関数によって結果が表示されます。
※注意: 上記のサンプルコードでは、Googleの検索結果を取得していますが、Googleの利用規約によりWebスクレイピングは制限されている場合があります。実際にこのコードを使用する前に、Googleの利用規約を確認し、適切に使用してください。また、大量の検索を行うとIPがブロックされる場合があるため、注意が必要です。