一个大型网络爬虫应该需要满足那些功能?

最近想用node写个爬虫工具,一来属性下nodejs,二来提升下知识面(个人认为爬虫是个提升前端知识面不错的学例),但是自己工作经验也不多,工作中也没了解或用过爬虫,想问下大佬们:

1、一个大型的爬虫应该是怎样的?
2、需要具体具备哪些功能?(一个爬虫程序的需求?)
3、一般公司是怎么使用爬虫的?

阅读 2.8k
2 个回答

「提升前端知识面不错的学例」是什么意思?感觉除了从逆向思维思考前端如何写页面、工作原理然后对症找到爬取数据的方式,其他方面感觉并不能提升前端知识面。

  1. 一般的爬虫程序,准确率不可能100%,所以你爬取完数据需要做数据清洗工作;
  2. 爬取太快的话反爬虫措施可能会封锁 IP、账号,所以你需要找到对应的措施,比如代理 IP 池、单位时间请求次数阀值等的判定;
  3. 爬虫为了提高效率可能需要用到分布式爬虫、多线程爬虫;
  4. 需要处理常见的反爬虫措施,需要读对一些 JS 代码保持敏感(目前前端工程的构建方式主要是 webpack 之类,所以代码混淆过的);
  5. Node.js 做爬虫开发,可以了解下这个项目。puppeteer

对于真的需要了解前端开发方面的知识,可以看看这个文章:从Vue.js谈谈前端开发技术演变

呃,我不知道大型爬虫的标准是什么,我现在在维护一个爬虫(主要抓取新闻文章),每天抓取量10W+, 我是用Python3+scrapy写的,首先我感觉我要会的知识有以下几点:

  • 1, http和https协议,那些headers里面的参数什么意思,还有状态码含义
  • 2, 要会抓包,有时候APP数据比网页数据好抓取多了.
  • 3,基本的js函数要能看懂,可以逆向还原Js代码,因为很多反爬措施是js混淆生成的参数,要会chrome断电调试js
  • 4,爬虫代码的健壮性,因为发送url请求后,返回的数据是别人给的,很多不确定性。
补充一点,据说后面有的爬虫还要反编译app的apk包,感觉好难,高级爬虫据说还要懂java, android什么的
还有就是selenium, appium等效率贼慢,不适合部署,大规模抓取(个人感觉)

然后你的第三个问题: 公司如何使用爬虫?
这个我没有自己的经验回答你,因为我也没去过很多公司,但是我想公司要爬虫,肯定是有需求决定的,公司需要那些数据,就会想方设法的去获取数据。

撰写回答
你尚未登录,登录后可以
  • 和开发者交流问题的细节
  • 关注并接收问题和回答的更新提醒
  • 参与内容的编辑和改进,让解决方法与时俱进
推荐问题