爬虫技能
一、技能列表
1、掌握java、尤其编程网络部分;李刚的java基础至少看了三遍以上;
2、熟悉html、js、 ajax、firedebug
3、网页去重、找到网站特点
4、分布式
5、多线程
6、一种关系型数据库mysql/oraclelserver/mybatis
7、正则表达式、css selector、 xpath
8、DNS cache
9、TCP/IP/Http协议tp2.010、web登录协议
10、 SSO、OAuth原理
11、反爬策略
12、熟悉httpClient、okhttp3...
13、 熟悉一些提取工具、jsoup、selenim WebDriver...
14、搜索技术。熟悉Lucene/Nutch/Heritrix/solr/elastic-search/
15、熟悉XML、JSON、SOAP协议;
16、mongodb、 redis、 hbase、 hadoop
17、文本分析、机器学习、数据挖掘、自然语言处理[NLP]
18、完成网页、微博、微信、贴吧、论坛等数据信息的精准抽取
19、RPC协议
20、netty、NIO
21、HTMLUnit、PhantomJS、SlimerJS 、CasperJS
22、代理部署方案:http/socks
23、nginx、 squid、jetty
24、破解ios
25、验证码、ocr、tess4j
二、爬虫工具
1、Phantomjs
2、berserkJS(基于Phantomjs的改进版本)
3、SlimerJS
4、CasperJS
5、selenium
三、Java相关
常用的IDE:IntelliJ IDEA,Eclipse,Netbeans
Web开发相关:Tomcat、Resin、Jetty、WebLogic等,常用的组件Struts,Spring
HibernateNetty: 异步事件驱动网络应用编程框架,用于高并发网络编程比较好(NIO框架)
MINA:简单地开发高性能和高可靠性的网络应用程序(也是个NIO框架),不少手游服务端是用它开发的
jOOQ:java Orm框架Activiti:工作流引擎,类似的还有jBPM、Snaker
Perfuse:是一个用户界面包用来把有结构与无结构数据以具有交互性的可视化图形展示出来.
Gephi:复杂网络分析软件, 其主要用于各种网络和复杂系统,动态和分层图的交互可视化与探测开源工具
Nutch:知名的爬虫项目,hadoop就是从这个项目中发展出来的
web-harvest:Web数据提取工具
POM工具:Maven+ArtifactoryNetflix
Curator:Netflix公司开源的一个Zookeeper client library,用于简化Zookeeper客户端编程
Akka:一款基于actor模型实现的 并发处理框架
EclEmma:覆盖测试工具