You need to enable JavaScript to run this app.
优惠活动
大模型
产品
解决方案
定价
更多

如何从使用javascript:href且导航不变URL的房产列表页提取房源唯一链接

解决方案

你访问的站点是典型的ASP.NET WebForms架构,__doPostBack是其内置的异步表单提交方法,点击房源后会先提交表单再跳转到详情页,所以初始页面静态资源和基础网络请求里不会直接暴露详情链接,可按以下步骤操作:

步骤1:提取所有房源唯一标识

打开Chrome开发者工具(F12)切换到Console标签,运行以下代码提取所有房源的ID:

const listingIds = [];
document.querySelectorAll('a[href*="__doPostBack"]').forEach(a => {
  const hrefVal = a.getAttribute('href');
  const idMatch = hrefVal.match(/Redisplay\|(\d+)/);
  if (idMatch?.[1]) listingIds.push(idMatch[1]);
});
console.log('所有房源ID:', listingIds);
// 如需直接复制到剪贴板,额外运行一行:copy(listingIds)

你示例里的第一条房源ID就是提取到的373。

步骤2:批量获取真实详情页链接

方法一:直接拼接(优先尝试)

先手动点击任意一个房源进入详情页,观察详情页URL结构,确认是否包含刚才提取的房源ID,如果存在对应关系,直接按URL规律批量拼接即可。

方法二:自动采集(无规律时使用)

如果URL没有明显拼接规律,运行以下脚本自动模拟点击、拦截跳转链接,不会实际打开大量标签页:

const realLinks = [];
const originalOpen = window.open;
// 拦截跳转事件收集链接
window.open = (url) => {
  realLinks.push(url);
  return null;
};

const listingLinks = document.querySelectorAll('a[href*="__doPostBack"]');
// 间隔1秒点击一个房源,避免触发反爬限制
listingLinks.forEach((item, index) => {
  setTimeout(() => {
    item.click();
    console.log(`已采集第${index + 1}条房源链接`);
  }, index * 1000);
});

// 全部采集完成后输出结果
setTimeout(() => {
  window.open = originalOpen;
  console.log('所有真实房源链接:', realLinks);
  // 复制结果到剪贴板:copy(realLinks)
}, listingLinks.length * 1000 + 500);

注意事项

  • 点击间隔可根据页面加载速度调整,网速慢可以把1000改成2000(即2秒点击一次)
  • 运行脚本前可先给站点开放弹窗权限,避免拦截跳转导致采集失败
  • 如果脚本执行异常,刷新页面重新运行即可

内容的提问来源于stack exchange,提问作者jalil_BM

相关产品推荐
方舟 Agent Plan

超全模态模型 × Harness 升级,最新支持 Deepseek-V4.1-Flash、GLM-5.3 系列、Doubao-Seedream-5.0-pro、Kimi-K3 (部分), 限时 9.9 元起

最近更新时间:2026.10.07 01:36:02