Polis-JSスクレイピング
Polisの詳細レポートの画面から情報を抜き出してChatGPTに入れたかったので作ったnishio.icon
都合のいいIDなどが振られていないので開発者ツールでインスペクトしてクエリーセレクターで無理やり取り出している、これは壊れやすいと思う
code:js
colsToData = (cols) => {
groups = cols.slice(2).map((g) => g.title.replace(/\n/g, ", "));
return {
statement: cols1.innerText, groups,
};
};
printForGPT = (table, target = 1) => {
result = [];
rows.forEach((row) => {
data = colsToData(cols);
result.push(
${data.statement}\n OVERALL: ${data.groups[0]}\n GROUP ${group_id}: ${data.groups[target]}
);
});
console.log(result.join("\n\n"));
};
// printForGPT(table, 1);
num_group = 4;
for (let i = 0; i < num_group; i++) {
table = document.querySelector(
`#root > div > div > div:nth-child(2) > div:nth-child(5) > div > div:nth-child(${
i + 3
}) > div`
);
printForGPT(table, i + 1);
console.log("\n\n");
}
memo
code:js
table = document.querySelector("#root > div > div > div:nth-child(2) > div:nth-child(5) > div > div:nth-child(3) > div")
[...table.children0.children].map((x)=>x.innerText) // table B
table = document.querySelector("#root > div > div > div:nth-child(2) > div:nth-child(5) > div > div:nth-child(4) > div")
// table C
table = document.querySelector("#root > div > div > div:nth-child(2) > div:nth-child(5) > div > div:nth-child(5) > div")