当前位置: 首页 > 后端技术 > Node.js

puppeteer的简单使用_爬取页面信息

时间:2023-04-03 12:26:05 Node.js

使用chromeheadless浏览器作为爬虫——你用什么puppeteer?它是一个用于操作浏览器API的Node库。你没有看错,是用来操作浏览器的。仔细想想就毛骨悚然。简单的说就是所有的浏览器都有了(当然部分功能也在开发中)。可以注册,模拟登录,设置cookies操作dom事件,执行js脚本。Chrome团队维护它。太奇妙了。文档地址:https://github。com/GoogleChro...安装首先,Nodejs的版本不能低于v7.6.0,因为都是async的,await异步操作npminstallpuppeteer-S安装有问题的朋友可以试试npm自带的配置文件,在当前目录下新建一个.npmrc结尾的文件,内容如下npm.taobao.org/dist/phantomjselectron_mirror=https://npm.taobao.org/mirrors/electron/sass_binary_site=https://npm.taobao.org/mirrors/node-sass/puppeteer_download_host=https://cdn。npm.taobao.org/dist官网democonstpuppeteer=require('puppeteer');(async()=>{//创建浏览器实例Browserobjectconstbrowser=awaitpuppeteer.launch();//创建页面通过浏览器实例的页面对象constBrowserobjectpage=awaitbrowser.newPage();//通过url参数打开指定页面awaitpage.goto('https://example.com');//页面截图awaitpage.screenshot({path:'example.png'});//关闭浏览器awaitbrowser.close();})();下面开始最基本的爬取实践_爬取小说站任意一本书的章节列表,观察两个箭头标记的url,.html前的数字就是抓取图书的bookId章节列表容器标签上的干货位于,所有这些都在评论中。捕获结果完整代码constpuppeteer=require('puppeteer');(async()=>{try{//创建浏览器实例Browser对象letbrowser=awaitpuppeteer.launch({//浏览器是否不在显示,如果为true,则不显示'headless':false,});//通过浏览器实例创建页面PageBrowserobjectObjectletpage=awaitbrowser.newPage();//设置浏览器信息constUA="Mozilla/5.0(X11;Linuxx86_64)AppleWebKit/537.36(KHTML,likeGecko)UbuntuChromium/63.0.3239.84Chrome/63.0.3239.84Safari/537.36";awaitPromise.all([page.setUserAgent(UA),//允许js运行page.setJavaScriptEnabled(true),//设置页面视口的大小page.setViewport({width:1100,height:1080}),]);//地址letchapter_list_url=`http://book.km.com/chapterlist/396353.html`//打开章节列表awaitpage.goto(chapter_list_url);//css选择器的使用方式letcontent=awaitpage.$eval('#xtopjsinfo>div.wrapper>div.container>div.catalog>div.catalog_bd',el=>el.innerText);控制台.log(内容);}catch(err){console.log(err)}})()