javascript
(async function crawlAll() {
const allNames = new Set();
const totalPages = 19; // 已知一共19页
const baseUrl = window.location.origin + '/xiaoqu/xuanwu/';
for (let page = 1; page <= totalPages; page++) {
try {
// 构建第 N 页的 URL
const url = page === 1 ? baseUrl : `${baseUrl}pg${page}`;
console.log(`正在抓取第 ${page} 页...`);
// 模拟请求
const response = await fetch(url);
if (!response.ok) throw new Error('请求失败');
const text = await response.text();
const parser = new DOMParser();
const doc = parser.parseFromString(text, 'text/html');
// 提取小区名
const links = doc.querySelectorAll('.xiaoquListItem .title a');
links.forEach(link => {
const name = link.title.trim();
if (name) allNames.add(name);
});
// 延时防封
await new Promise(resolve => setTimeout(resolve, 1000));
} catch (e) {
console.log(`第 ${page} 页跳过或失败:`, e.message);
}
}
// 一次性输出所有
const finalList = Array.from(allNames).join('\n');
console.log('\n🏁 抓取完成!以下是完整列表:\n');
console.log(finalList); // 一行一个,完整输出
})();
获取单页的小区名称
javascript
// 获取所有小区列表项
const items = document.querySelectorAll('.xiaoquListItem');
// 遍历并提取小区名称
const names = [];
items.forEach(item => {
// 从 title 属性或文本获取小区名
const name = item.querySelector('.title a').title.trim();
names.push(name);
});
// 一行一个输出
console.log(names.join('\n'));
// 同时返回结果方便复制
names;