美文网首页
puppeteer小说爬虫(1)--配置环境

puppeteer小说爬虫(1)--配置环境

作者: 西方早晨 | 来源:发表于2018-07-12 12:08 被阅读0次

        最近想找几本小说来看看,确实是有很多网站可以找到,但是无奈广告巨多,提供的下载链接还。。。说多都是泪啊。既然你不仁,就没办法了。只有通过爬虫来爬了你啦。

puppeteer是谷歌发布的NodeJs库。通过DevTools Protocol用于控制chrome或者chromium,里面提供了高级API,默认以无头浏览器的方式启动。

puppeteer API文档在这里可以查找

        puppeteer这个工具,个人觉得不错,配置简单方便。ok,就此决定是你啦。下面介绍小说爬虫工具的平生吧。。。

1.安装nodejs(LTS版本就好了)

#ubuntu
下载完成后是一个压缩包,直接解压到自己想放的位置去。这里我直接放到了$HOME文件夹中。然后配置下链接就可以使用了。

tar xvJf node-v8.11.3-linux-x64.tar.xz -C ~/
cd ~/node-v8.11.3-linux-x64/bin
sudo ln -s node /usr/bin/node
sudo ln -s npm /usr/bin/npm

#windows
windows可以选择下载的包有有msi和zip,随便选一个下载。msi直接安装在C盘就ok(毕竟是命令工具),zip包也建议解压到C盘目录。
这里建议是(C:\Program Files (x86)\nodejs\)。msi文件的安装可以选择加入环境变量,但是zip包还需要自己配置,具体配置方法请搜索环境变量配置方法,把bin里面的 node 和 npm 执行文件的目录加入PATH中。

以上步骤完成后,请打开终端测试(windows 系统:win+R 输入CMD回车)

输入命令 
node -v

输出 v8.11.3(这是版本号)就ok了。

2安装puppeteer

命令行执行
npm i puppeteer --save -g

        安装过程可能会下载chromium。如果下载失败请搜索 cnpm。下载完成后未必可以马上使用,坑爹的npm有可能会把包放到了一个node找不到的位置去。这时候需要为刚才下载的包配置下环境变量(至少我在windows上需要,下载到的目录是:C:\Users\你的用户名\AppData\Roaming\npm\node_modules 加入环境变量中)。ok至此环境已经完全搞定。赶紧试下怎么用。

3使用puppeteer

新建一个 hello.js文件

/*加载puppeteer库*/
const puppeteer = require('puppeteer');

/*定义一个异步函数执行*/
(async ()=> {

    //创建一个浏览器
    var browser = await puppeteer.launch({
                headless:false, //是否以无头模式运行
            }).catch(ex => {            
                console.log(ex);                                
            });

    if (!browser) {
        console.log('browser launch failed!');
        return;
    }

    //创建一个新页面
    var page = await browser.newPage().catch(ex=>{
            console.log(ex);
        });

    if (!page) {
        console.log('fail to open page!');
        browser.close().catch(e=>{});
        return;
    }

    var respond = await page.goto("http://www.baidu.com/", {
                'waitUntil':'domcontentloaded',
                'timeout':120000
            }).catch(ex=>{              
                console.log(ex);
            });

    if (!respond) { 
        console.log('fail to goto website!');   
        browser.close().catch(e=>{});
        return;
    }

})()

然后到文件目录下打开终端,执行

node hello.js

成功打开浏览器即成功!!
恭喜,迈向了成功的一步了。

下一篇将讲解爬取小说的基本逻辑

puppeteer小说爬虫(2)--基本逻辑

相关文章

网友评论

      本文标题:puppeteer小说爬虫(1)--配置环境

      本文链接:https://www.haomeiwen.com/subject/vztlpftx.html