nodejs爬虫
- 2019 年 10 月 5 日
- 笔记
header头部
Referer:防盗链,发送本地地址到服务器验证 Cookie、Set-cookie:缓存Cookie 模拟浏览器发送数据user-agent
User-Agent:Mozilla/5.0 (X11; Ubuntu; Linux x86_64; rv:45.0) Gecko/20100101 Firefox/45.
静态网页爬虫
安装http、cheerio(jquery核心模块),http.get请求网页
动态网页爬虫
安装superagent,模拟浏览器ajax请求 安装selenium-webdriver,包含大多数浏览器驱动,可以条用浏览器返回数据 无界面浏览器
- 安装PhantomJS已停止维护
- chrome-headless库,nickjs、puppeteer(webpack打包缺少ws模块,package.json中,browser.ws定位应该在node_modules中,npm run bundle重新编译)
//执行过程中异常,需要手动编译gyp文件 //gyp目录下node-gyp configure(node.lib如果下载失败,拷贝cosole地址手动下载) //再node-gyp build const puppeteer = require('puppeteer'); (async () => { const browser = await puppeteer.launch(); //参数设置{headless:false}有界面 const page = await browser.newPage(); await page.goto('https://example.com'); //goto 添加参数{waitUntil: 'load',timeout: 0},避免navigation超时 await page.screenshot({path: 'example.png'}); await browser.close(); //关闭时会有正常的异常,不捕获就可以了 })();
page.$(selector)返回elementHandle元素,封装了单个元素的操作,click、focus等 page.content获取html
http短链接,cookie(客户端headers中cookie,服务端set-cookie)、session记录网页状态
js异步
await、async(async声明不创建线程) async函数返回Promise对象,Promise包含resolved执行完、pending 正在执行、reject异常 thenable状态完成后,执行并返回Promise对象,链式调用
参考
爬虫100例:https://mp.weixin.qq.com/s/a8Tky_u1u0A4vbssnAK2_g
版权声明:本文为博主原创文章,遵循 CC 4.0 BY-SA 版权协议,转载请附上原文出处链接和本声明。
本文链接:https://blog.csdn.net/daoer_sofu/article/details/100610250