如何抓取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工具自动加载页面并抓取:
- 先安装Node.js(官网下载安装即可,一路下一步)
- 新建一个文件夹,打开命令提示符(或终端)进入该文件夹,执行:
npm init -y npm install puppeteer
- 在文件夹里新建
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();
- 在命令提示符里执行
node scrape.js,程序会自动打开浏览器加载页面,抓取完成后会在文件夹里生成议会辩论链接.json文件,里面就是所有链接数据
同样,如果提取不到链接,记得调整代码里的document.querySelectorAll的选择器,和控制台方法里的调整方式一样。
内容的提问来源于stack exchange,提问作者zq111
相关产品推荐
相关产品推荐

