前往小程序,Get更优阅读体验!
立即前往
首页
学习
活动
专区
工具
TVP
发布
社区首页 >专栏 >nodejs爬虫

nodejs爬虫

作者头像
sofu456
发布2019-09-18 14:47:59
1.8K0
发布2019-09-18 14:47:59
举报
文章被收录于专栏:sofu456sofu456

header头部

Referer:防盗链,发送本地地址到服务器验证

Cookie、Set-cookie:缓存Cookie

模拟浏览器发送数据user-agent

代码语言:javascript
复制
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重新编译)
代码语言:javascript
复制
//执行过程中异常,需要手动编译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

本文参与 腾讯云自媒体分享计划,分享自作者个人站点/博客。
原始发表:2019年09月11日,如有侵权请联系 cloudcommunity@tencent.com 删除

本文分享自 作者个人站点/博客 前往查看

如有侵权,请联系 cloudcommunity@tencent.com 删除。

本文参与 腾讯云自媒体分享计划  ,欢迎热爱写作的你一起参与!

评论
登录后参与评论
0 条评论
热度
最新
推荐阅读
目录
  • header头部
  • 静态网页爬虫
  • 动态网页爬虫
  • js异步
  • 参考
领券
问题归档专栏文章快讯文章归档关键词归档开发者手册归档开发者手册 Section 归档