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

如何抓取JavaScript渲染的议会辩论搜索结果中的链接?

抓取JS渲染页面搜索结果链接的实操方法

方法一:浏览器控制台直接提取(零成本,适合单页)

这是最适合新手的方法,不用装任何工具:

  • 打开目标搜索页面,等待所有搜索结果加载完成(如果有分页,先切换到你要抓取的页面)
  • 按F12(或右键页面→“检查”)打开浏览器控制台,切换到「Console」标签
  • 复制下面的代码粘贴进去,按回车执行:
// 先定位所有搜索结果里的链接元素(如果提取不到,需要调整选择器)
const linkElements = document.querySelectorAll('.search-result__title a');
// 提取链接的文本和URL,转成数组
const resultLinks = Array.from(linkElements).map(link => ({
  标题: link.textContent.trim(),
  链接: link.href
}));
// 打印结果到控制台
console.log(resultLinks);
// 如果想直接复制到剪贴板,执行下面这行
copy(resultLinks);
  • 执行后,控制台会输出所有链接,执行copy(resultLinks)后,结果会直接复制到你的剪贴板,可粘贴到记事本或Excel里使用

注意:如果代码没抓到链接,说明选择器不对。你可以右键任意一个搜索结果标题→“检查”,查看链接元素的class或标签,比如如果链接的父元素class是debate-item,就把document.querySelectorAll里的.search-result__title a改成.debate-item a即可。

方法二:用Puppeteer自动抓取(适合多页批量处理)

如果需要抓取多页结果,手动翻页太麻烦,可以用Node.js的Puppeteer工具自动加载页面并抓取:

  1. 先安装Node.js(官网下载安装即可,一路下一步)
  2. 新建一个文件夹,打开命令提示符(或终端)进入该文件夹,执行:
npm init -y
npm install puppeteer
  1. 在文件夹里新建scrape.js文件,粘贴下面的代码:
const puppeteer = require('puppeteer');
const fs = require('fs');

async function getHansardLinks() {
  // 启动浏览器(headless: false 可以看到浏览器运行过程,方便调试)
  const browser = await puppeteer.launch({ headless: false });
  const page = await browser.newPage();
  const targetUrl = 'https://hansard.parliament.uk/search/Debates?startDate=1820-01-01&endDate=1911-02-01&searchTerm=%22estimates%22%20%22army%22&house=Commons&partial=False&sortOrder=0';

  // 打开目标页面,等待页面完全加载
  await page.goto(targetUrl, { waitUntil: 'networkidle2' });

  // 在页面中执行JS提取链接
  const allLinks = await page.evaluate(() => {
    return Array.from(document.querySelectorAll('.search-result__title a')).map(link => ({
      标题: link.textContent.trim(),
      链接: link.href
    }));
  });

  // 打印结果并保存到JSON文件
  console.log('抓取完成,共', allLinks.length, '条链接');
  fs.writeFileSync('议会辩论链接.json', JSON.stringify(allLinks, null, 2));

  // 关闭浏览器
  await browser.close();
}

// 执行抓取函数
getHansardLinks();
  1. 在命令提示符里执行node scrape.js,程序会自动打开浏览器加载页面,抓取完成后会在文件夹里生成议会辩论链接.json文件,里面就是所有链接数据

同样,如果提取不到链接,记得调整代码里的document.querySelectorAll的选择器,和控制台方法里的调整方式一样。

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

相关产品推荐
方舟 Agent Plan

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

最近更新时间:2026.07.06 16:43:12