└── README.md /README.md: -------------------------------------------------------------------------------- 1 | [![996.icu](https://img.shields.io/badge/link-996.icu-red.svg)](https://996.icu) 2 | 3 | # awesome-java-crawler 4 | 本仓库收集整理Java爬虫相关资源 5 | 6 | ### 非浏览器Java爬虫框架 7 | * [VSCrawler](https://gitee.com/virjar/vscrawler) - 适合抓取封堵的爬虫框架,大佬出品! 8 | * [WebMagic](https://github.com/code4craft/webmagic) - Java垂直爬虫框架 9 | * [crawler4j](https://github.com/yasserg/crawler4j) - 多线程爬虫框架 10 | * [SeimiCrawler](https://github.com/zhegexiaohuozi/SeimiCrawler) 11 | * [ispider](https://github.com/xpleaf/ispider) - 分布式爬虫框架 12 | * [Gecco](https://github.com/xtuhcy/gecco) - 轻量化的易用的网络爬虫 13 | 14 | ### 基于浏览器核心的爬虫工具 15 | * [Chrome Devtools Protocol](https://github.com/ChromeDevTools/awesome-chrome-devtools) - Chrome开发协议相关资源;Chrome控制台工具、Selenium、Puppeteer均基于此协议开发;所有主流编程语言均有第三方支持 16 | * [Selenium](https://www.seleniumhq.org/) - 应用最广泛的浏览器自动化测试框架,支持所有主流浏览器 17 | * [Puppeteer(javascript)](https://github.com/GoogleChrome/puppeteer/) - 基于Chrome开发协议的高层浏览器自动化框架 18 | * [Pyppeteer(python)](https://github.com/pyppeteer/pyppeteer) - puppeteer的Python实现 19 | * [Jyppeteer](https://github.com/fanyong920/jvppeteer) - puppeteer的Java实现 20 | * [CDP4J](https://github.com/webfolderio/cdp4j) - Java版本的Chrome开发协议支持库。注意本库为商业授权 21 | * [Tampermonkey](https://tampermonkey.net/) - 著名的“油猴”浏览器脚本管理器,可用于浏览器自动化控制 22 | * [PhantomJS(javascript)](http://phantomjs.org/) - 基于WebKet核心的无头浏览器。已经停止维护 23 | 24 | ### Java网络框架 25 | * [java-curl](https://github.com/rockswang/java-curl) - CURL命令行工具的纯java实现,功能强大,灵活方便 26 | * httpclient - 历史悠久的Apache HTTP开源库 27 | * okhttp - 目前流行的HTTP开源库,可用于Android 28 | * retrofit - 基于okhttp的高层HTTP库,提供基于注解的API 29 | 30 | ### 应答数据解析 31 | * [jsoup](https://jsoup.org/) - 网络请求,HTML解析,CSS Selector/xPath查询 32 | * Jackson, GSON, fastjson - JSON解析 33 | * [dom4j](https://dom4j.github.io/) - XML解析 34 | 35 | ### 代理IP 36 | * [66免费代理网](http://www.66ip.cn/) 37 | * [西刺免费代理IP](http://www.xicidaili.com/) 38 | * [无忧代理](http://www.data5u.com/) 39 | * [芝麻软件](http://www.zhimaruanjian.com/) 40 | 41 | ### 验证码破解 42 | * [冷月JS爆破](https://github.com/leng-yue/Lengyue-Vcode/) - 各种滑动验证码识别 43 | * [Luosimao验证码破解](https://github.com/sml2h3/luosimao_cracker) 44 | * [Tesseract OCR](https://github.com/tesseract-ocr/tesseract) - 开源OCR引擎,可用于自动识别较简单的图片验证码 45 | * [若快](http://www.ruokuai.com/) - 人肉打码平台,服务较稳定,应答时间较快 46 | 47 | ### 抓包分析,请求拦截等工具 48 | * [Fiddler](https://www.telerik.com/fiddler) - Windows平台上常用抓包工具,可以分析HTTPS,可C#编程自行扩展 49 | * Charles - Mac上可用的抓包工具 50 | * [LittleProxy-MITM](https://github.com/ganskef/LittleProxy-mitm) - 基于LittleProxy,可编程扩展的Java代理服务器,可基于中间人方式解析和修改HTTPS请求和应答 51 | * [proxyee](https://github.com/monkeyWie/proxyee) - 国人作品,支持HTTPS 52 | * [抓包工具大全](https://www.freebuf.com/sectool/184366.html) - 猫厂、鹅厂都有,看来大厂都喜欢造轮子 53 | 54 | ### 前端JavaScript分析调试工具 55 | * [javascript-breakpoint-collection](https://github.com/mattzeunert/javascript-breakpoint-collection) - 一个Chrome插件,可用于设定高级断点;也可以直接在控制台执行其源码,之后即可在控制台设断点,可以监听任意对象属性读写、cookie读写等 56 | * [几种常见的JavaScript混淆和反混淆工具分析实战](https://www.freebuf.com/articles/web/97945.html) 57 | * [spy-debugger手机浏览器远程调试](https://github.com/wuchangming/spy-debugger) - 使用代理服务器注入外部JavaScript,实现远程调试。可以调试微信内置浏览器, 应用内嵌的WebView等,非常强大 58 | 59 | ### 其它工具 60 | * CURL - 最常用的命令行请求模拟工具,Windows下可以通过Cygwin安装,也可以直接用java-curl 61 | * [HTTPBIN.ORG](https://httpbin.org) - 在线工具网站,根据需求模拟各种HTTP应答,可用于验证代理的匿名性(透明/匿名/高匿) 62 | * ```curl -x : https://httpbin.org/get?show_env=1``` - 如果X-Forwarded-For和origin不一致,表明使用了非匿名代理 63 | * [淘宝IP地址库](http://ip.taobao.com/) 64 | * ```http://ip.taobao.com/service/getIpInfo.php?ip=11.206.34.204``` - 查询给定IP的归属地 65 | * ```curl http://ip.taobao.com/service/getIpInfo2.php -x : -d "ip=myip"``` - 查询当前主机公网IP信息,这个命令可以验证代理IP是否可用,同时获取代理IP的归属地 66 | * [IP138](http://ip138.com) - 查询IP归属地、手机号段等 67 | * [在线UA库](https://developers.whatismybrowser.com/useragents/explore/software_name/) - 各种真实浏览器UserAgent列表 68 | * WEB前端助手 - Chrome插件,提供大量实用工具,如JSON格式化,编解码等 69 | * [在线加解密算法大全](http://tool.chacuo.net/cryptdes) - 含DES, AES, RSA等,可用于快速验证加解密算法 70 | * [beautifier.io](https://beautifier.io/) - js代码在线格式化 71 | * [estree](https://github.com/estree/estree) - ECMAScript抽象语法树(AST)业界标准 72 | * [ECMAScript262语言规范](https://tc39.github.io/ecma262) - 帮助理解estree 73 | * [acornjs](https://github.com/acornjs/acorn) - ECMAScript编译器前端,将js源码解析成estree格式的AST 74 | * [astring](https://github.com/davidbonnet/astring) - ECMAScript代码生成器,将AST重新还原成js源码 75 | 76 | ### 爬虫实例项目 77 | * [知乎爬虫](https://github.com/wycm/zhihu-crawler) - 使用http代理,多线程 78 | * [电商爬虫](https://github.com/JFanZhao/spider) - httpclient+hbase+solr+redis+zookeeper 79 | * [淘宝商品爬虫(python)](https://github.com/Williamsunsir/Spider/tree/master/taobao) - python + selenium 80 | 81 | ### 爬虫干货文章收集 82 | 83 | #### 概念 84 | * [HTTP简史](https://zhuanlan.zhihu.com/p/59345476) - 介绍HTTP协议的干货 85 | * [网络爬虫干货总结](https://juejin.im/post/5bce8201518825773605597d) - 虽然是python栈的,但是对爬虫各个环节的概念总结的非常全面 86 | * [Java 月薪25K的爬虫工程师对爬虫的流程做了一个非常全面的总结!](https://blog.csdn.net/Knight_VIP/article/details/81736918) - 膜拜ing... 87 | 88 | #### 实操 89 | * [微信公众号文章批量采集系统的构建](https://zhuanlan.zhihu.com/p/24302048) 90 | 91 | #### 高级反爬攻防 92 | * [注入eval, Function等系统函数,截获动态代码](https://segmentfault.com/a/1190000018742189) - 破解动态执行的加密js代码 93 | * [某网站高度加密混淆的javascript的分析](https://segmentfault.com/a/1190000017541235) 94 | * [从javaScript脚本混淆说起](https://www.freebuf.com/articles/system/140062.html) 95 | * [JavaScript反调试技巧](https://www.freebuf.com/articles/system/163579.html) - 知己知彼,百战不殆 96 | * [Chrome调试技巧](https://github.com/FantasticLBP/knowledge-kit/blob/master/%E7%AC%AC%E4%BA%8C%E9%83%A8%E5%88%86%20Web%20%E5%89%8D%E7%AB%AF/2.24.md) 97 | * [那些年绕过的反爬手段](https://www.freebuf.com/articles/web/166125.html) 98 | * [反反爬虫手段收集](https://github.com/luyishisi/Anti-Anti-Spider) 99 | * [大前端时代安全性如何做](https://segmentfault.com/a/1190000017899193) - 提供一种反爬方案 100 | * [文书网破解SDK](https://github.com/sml2h3/mmewmd_crack_for_wenshu) 101 | * [2.5代指纹追踪技术—跨浏览器指纹识别](https://paper.seebug.org/350/) 102 | 103 | #### Android App破解 104 | * [思路分享 | 看我如何给微信下钩子](https://www.freebuf.com/articles/web/156944.html) 105 | 106 | #### Chrome浏览器相关 107 | * [Chrome命令行参数大全](https://peter.sh/experiments/chromium-command-line-switches/) - 定制化chrome,比如启动无头版浏览器 108 | * [Getting Started with Headless Chrome](https://developers.google.com/web/updates/2017/04/headless-chrome) - 介绍如何使用无头版Chrome 109 | * [CentOS6上安装Chrome](https://intoli.com/blog/installing-google-chrome-on-centos/) - 用于搭建无头浏览器爬虫生产环境 110 | * [CentOS 7.x环境下搭建: Headless chrome + Selenium + ChromeDriver](https://blog.csdn.net/zhuyiquan/article/details/79537623) 111 | 112 | ### 其它资源 113 | * [apkmirror](https://www.apkmirror.com/apk/google-inc/chrome/variant-%7B%22arches_slug%22%3A%5B%22x86%22%5D%7D/) - 安卓x86版Chrome下载,可用于安卓模拟器 114 | --------------------------------------------------------------------------------