这里专门开个帖子用来整理采集遇到的问题

Win7安装nodejs,之后在sublime运行,之后再安装 puppeteer采集网页

PHPer 2022-04-25 794 0 0

win10安装puppeteer 提示nodejs版本要不低于16.13.2(2023.11.28)

d390cbfff2-qq-jie-tu20231128002658_normal.jpg


支持Win7最新的版本是V13.14.0 官网地址: https://nodejs.org/download/release/v13.14.0/

之后直接安装,安装好后配置环境变量

be2a578526-qq-jie-tu20220425034353_normal.jpg

7040c548d6-qq-jie-tu20220425034430_normal.jpg

827fbf4302-qq-jie-tu20220425034506_normal.jpg

配置到你安装的路径

之后cmd测试下

147c94197a-qq-jie-tu20220425034542_normal.jpg

OK了 ...

立即注册

更新于:2023-11-28 01:20:22
    您需要登录后才可以评论。 立即注册

    使用puppeteer爬取网站,抓出404无效链接(2022年5月实测有效)

    检查网页无效链接

    前言

    自动化技术可以帮助我们做自动化测试,同样也可以帮助我们完成别的事情,比如今天我们要做的检查网站404无效链接。

    原理

    实现这样的功能,大致分为以下步骤: 1.打开官网首页,获取页面上所有的链接。 2.添加规则对这些链接过滤,把外链去掉。 3.遍历访问这些链接,打开打开其中的每一个链接,检查是否为404,如果是距离下来。 4.重复执行1,2,3。直到把整个网站所有的链接都遍历完。

    准备

    实现

    CukeTest中新建一个项目。

    删掉features目录。新建一个demo.js文件。

    安装puppeteer

    npm install puppeteer --save
    

    主要方法讲解

    pupputeer内置监听事件,可以很快拿到每个请求的响应结果。

    puppeteer可以创建Chromium实例。创建方式如下:

    let puppeteer = require('puppeteer');    
    browser = await puppeteer.launch({ headless: true });
    page = await browser.newPage();
    await browser.close();
    

    puppeteer 提供事件监听,可以监听到每个页面的响应状态,为每个请求添加响应事件,如果响应状态码为404,记录到文件中。 ...

    立即注册
    分享的网址网站均收集自搜索引擎以及互联网,非查问网运营,查问网并没有提供其服务,请勿利用其做侵权以及违规行为。
    更新于:2022-05-30 23:15:19

    puppeteer前端利器(2022年6月基本有效)

    文章中的代码还未实测,有些代码之前我已经在用了,ok的 20220601

    原内容发布与:2020-11-20 22:15 发布者:明么


    Puppeteer是 Chrome 开发团队在 2017 年发布的一个 Node.js 包,同时还有 Headless Chrome。用来模拟 Chrome 浏览器的运行。它提供了高级API来通过 DevTools 协议控制无头 Chrome 或 Chromium ,它也可以配置为使用完整(非无头)Chrome 或 Chromium。

    261cb1c2a3_normal.png

    学习 Puppeteer 之前我们先来了解一下Chrome DevTool ProtocolHeadless Chrome

    Chrome DevTool Protocol 是什么

    CDP 基于 WebSocket,利用 WebSocket 实现与浏览器内核的快速数据通道。CDP 分为多个域(DOM,Debugger,Network,Profiler,Console...),每个域中都定义了相关的命令和事件(Commands and Events)。我们可以基于 CDP 封装一些工具对 Chrome 浏览器进行调试及分析,比如我们常用的 “Chrome 开发者工具” 就是基于 CDP 实现的。很多有用的工具都是基于 CDP 实现的,比如Chrome 开发者工具chrome-remote-interfacePuppeteer等。

    Headless Chrome 是什么

    可以在无界面的环境中运行 Chrome。通过命令行或者程序语言操作 Chrome。无需人的干预,运行更稳定。在启动 Chrome 时添加参数 --headless,便可以 headless 模式启动 Chrome。chrome 启动时可以加一些什么参数,大家可以点击这里查看。

    总而言之 Headless Chrome 就是 Chrome 浏览器的无界面形态,可以在不打开浏览器的前提下,使用所有 Chrome 支持的特性运行你的程序。 ...

    立即注册
    更新于:2022-06-01 03:58:12

    nodejs puppeteer定位元素 await page.$ 和await page.waitForSelector

    var pager_next = await page.$('.vui_button vui_pagenation--btn vui_pagenation--btn-side');//这种写法不支持 20240623

    var no_content = await page.$('.vui_button--disabled');//这种写法支持 20240623​

    var pager_next = await page.waitForSelector('text/下一页');

    版本 puppeteer@22.11.2

    示例代码

    url2 = decodeURIComponent(url);
            console.log(url2);//https://search.bilibili.com/all?keyword=php教程&from_source=webtop_search&spm_id_from=333.999&search_source=5
            url2.match(/keyword=([^&]+)/g);
            keyword = RegExp.$1;
            url2.match(/page=([0-9]+)/g);
            page_num = RegExp.$1;
            if(page_num==1){
                url =url.replaceAll('&page=1','');
            }
            console.log('keyword:'+keyword+',page_num:'+page_num)
    
            await opn("http://cn.bing.com",{app: ['chrome','--remote-debugging-port=1234']});
    
            await wait(5000);//等待5秒,等待浏览器打开 20240622 
    
            let wsKey = await axios.get('http://localhost:1234/json/version');
            let browser = await puppeteer.connect({
                browserWSEndpoint: wsKey.data.webSocketDebuggerUrl,
                defaultViewport:null
            });
            let page = await browser.newPage()
            await page.goto(url,{
                waitUntil:'networkidle2' //等待页面不动了,说明加载完毕了
            });
     
            
           
            let bodyHandle = await page.$('html');
            let html = await page.evaluate(body => body.outerHTML , bodyHandle);
    
            fs.writeFileSync(nodejsc_dirname+'html2/'+keyword+'_'+page_num+'.html',html);
    
            await wait(2000);//等待2秒 
    
            var pager_next = await page.waitForSelector('text/下一页');
            // console.log(pager_next)
            // return 
            var pager_next = await page.$('.vui_button vui_pagenation--btn vui_pagenation--btn-side');//这种写法不支持 20240623
            var no_content = await page.$('.vui_button--disabled');//这种写法支持 20240623

    20240623...

    立即注册
    更新于:2024-06-23 14:23:04
    相关内容

    Yii2小部件Widget

    win7安装Redis遇到的问题

    在window系统上安装redis服务-Invalid argument during startup: Failed to...

    开源商城shopwind安装许可协议

    Windows10 修改 hosts 拒绝访问如何解决

    笔记本电脑安装Win7遇到的问题

    推荐内容

    分享几个好用的bt搜索bt资源下载网址网站

    影视电影剧集动漫综艺bt资源在线播放网址网站推荐分享

    全网最新bt磁力搜索引擎bt资源bt网站网址分享

    人气美女女优百度指数排行榜(波多野结衣,苍井空,三上悠亚,深田咏美,桥本有菜,北条...

    最强人造人深田咏美,业界的社交女王

    人生起起落落的三上悠亚,成名前的清纯风,怎么搭配出来的?

    业内第一大长腿,桥本有菜的腿究竟有多长

    波多野结衣,岛国业界著作最多的超级劳模

    日本AV界NO.1,苍井空是多少宅男的疯狂?

    美女女优视频混剪 This Girl-Laza Morgan

    怎样使用V2Ray代理和SSTap玩如魔兽世界/绝地求生/LOL台服/战地3/黑色沙漠/彩...

    sstap游戏代理教程 从此玩如魔兽世界/绝地求生/LOL台服/战地3/黑色沙漠/彩虹六...

    影视电影剧集动漫综艺bt资源在线播放网址网站推荐分享