大厂全都在用的秘密武器?Cursor+Qwen=爬虫?大的要来了!!!

1,151 阅读4分钟

引言

我们先来介绍cursor这一改变时代的神器。 cursor是一个集成了各种先进LLM的类vscode的编译器,也可以理解为在vscode中集成了AI辅助编程助手。cursor已经在各个公司中得到了广泛的应用,在它的帮助下,编码效率能够大幅度提升。今天,我们就来零基础使用cursor,完全用AI( 本例中使用 Qwen/Qwen2.5-Coder-32B-Instruct )实现一个网页爬虫,爬取微博的热榜。

565656545.jpg

准备工作

  1. 下载cursor并注册: Cursor - The AI Code Editor
  2. 保证拥有Node.js环境,如果没有可到官网下载:Node.js — 在任何地方运行 JavaScript
  3. 我们将使用Qwen/Qwen2.5-Coder-32B-Instruct模型,去代理申请一个密钥SiliconCloud
  4. 在cursor的设置中,添加Qwen/Qwen2.5-Coder-32B-Instruct模型,并关闭其他模型。修改OpenAI API Key板块中的代理地址为api.siliconflow.cn/v1 ,添加刚刚获得的API 密钥,保存添加。 image.png
  5. 创建一个文件夹,并在终端把它设置为后端项目: npm init -y //初始化一个后端项目

准备工作已经完成了,接下来让我们正式开始。

使用cursor完成代码

先明确要干什么: 我们要爬取微博热榜,拿到相应的标题、热度和链接,保存到csv文件中。

爬取目标网站:tophub.today/n/KqndgxeLl…

根据需求,创建prompt(提示词) prompt要尽量详细,分步骤,让LLM减少错误。在这里我给出我的prompt,你们也可以根据需求完善提出你们自己的prompt。

如果想要进一步了解prompt,请移步零基础LLM+Prompt:原来Prompt要这么用

请帮我编写一个Node程序,去爬取微博的热榜。
#要求:
1.使用request-promise 和 cheerio 
2.目标网站: @<https://tophub.today/n/KqndgxeLl9> 
3.爬取表格中热榜的排名、标题、热度、链接,并保存到csv文件中 

请一步步思考,你可以打开目标网站分析其网页结构,并编写代码。

使用cursor右上角设置左边的Toggle AI Panechat模式 image.png

根据AI提供的步骤来完成爬取微博热榜的任务,如果按照AI的方法没有完成的话,可以多提问几次,不断向AI提出所出现的问题,让它进一步修改代码来完成。如果还是没有完成,可以参考我的例子来进行下面的内容。

下面是AI为我提供的步骤:

  • 安装后面所需要的依赖:request-promise(发送请求,拿到html字符串)、cheerio(解析html字符串)、csv-writer(生成csv文件)
npm install request-promise cheerio csv-writer
  • 编写代码,创建一个js文件
// request-promise 负责发送请求
// import request from '';      es6写法
// es6之前   node 早期的  commonjs 模块化
const request = require('request-promise');
// 解析 request 拿到的html 字符串
const cheerio = require('cheerio');
// 创建一个对象形式的CSV写入器
const createCsvWriter = require('csv-writer').createObjectCsvWriter;  
// 常量 全部大写 配置项
// 要爬的微博热榜网站
const HOT_URL = 'https://tophub.today/n/KqndgxeLl9';
// network http 请求
request(HOT_URL)
    // http请求完成后
    .then(html => {
        // 请求完成了
        // console.log(html);
        // 解析 html 得到热榜
        // html 字符串 -> tr
        // 内存里模拟浏览器  cheerio 解析 html
        const $ = cheerio.load(html);   
        const hotList = [];
        // 该网页中为 tr
        // cheerio 提供的each循环
        // 查看要爬的网页,可以看到要爬的数据都在 table tr td 中 
        $('.jc table tr').each((index, element) => {
            // console.log(index, element);
            // 进入 tr 中拿 td
            // 模板:   $(node).find(querySelector)
            // 排序
            const rank =
                $(element).find('td:nth-child(1)').text().trim()
            // 标题
            const title =
                $(element).find('td:nth-child(2)').text().trim() //text 文字部分 trim 去掉空格
            // 热度
            const heat =
                $(element).find('td:nth-child(3)').text().trim()
            // 链接
            const link =
                $(element).find('td:nth-child(2) a').attr('href').trim();
            // 把上面的内容全部存到hotList中
            hotList.push({
                rank,
                title,
                heat,
                link,
            })
        })
        // 创建csv写入器
        const csvWriter = createCsvWriter({
            path: 'hot_list2.csv',     //存入的csv文件名
            header: [     //定义表头字段
                { id: 'rank', title: '排序' },    //第一列
                { id: 'title', title: '标题' },   //第二列
                { id: 'heat', title: '热度' },    //第三列 
                { id: 'link', title: '链接' },    //第四列
            ],
        })
        csvWriter
            .writeRecords(hotList)   // 将hotList写入csv文件中
            // 写入完成后,打印保存成功提示信息
            .then(() => console.log('CSV file has been saved.'))  
    })

好了,现在来执行js文件,看看结果是否保存到了csv文件中

image.png 至此,我们通过cursor已经成功完成了一个爬虫。我们并不完全了解爬虫,没有编写一句代码,这在cursor之前是不敢想象的。

结语

Cursor不仅仅是一个工具,它代表了未来编程的趋势。随着AI技术的不断发展,这样的辅助工具将变得越来越智能,能够处理更复杂的问题,提供更个性化的支持。各大公司已经开始广泛应用这类工具,以提高生产力和创新能力。

对于开发者来说,掌握这些新兴的技术和工具是至关重要的。它们不仅能帮助你更快地完成项目,还能让你有更多时间专注于创新和解决问题的核心部分。Cursor的出现标志着一个新时代的到来,在这个时代里,每个人都可以成为高效的开发者,无论你的水平如何。