JAVA处理爬虫逻辑的相关信息整理、代码实现、逻辑整理

作者: admin 分类: Scrapy 发布时间: 2020-05-11 10:18  阅读: 392 views

工作中偶然需要用到,于是有一些利用及学习。发现它是一个在某些方面很有效率的工具、比如功能测试、获取数据、分析业务等。python也许是爬虫的最优开发语言,但自己的主语言是Java,使用起来更得心应手一些。所以还是用Java处理爬虫。

一、爬虫相关的环境

工欲善其事、必先利其器。以下是整理的一些过程中用到的工具(待补充)。

工具(用的趁手就好)

  1. firefox/chrome:浏览器,以可视化方式操作,可以快速分析页面元素。
  2. selenium+相关浏览器驱动:自动化测试工具,模拟用户的浏览器操作。
  3. plantojs:无头浏览器模式,已淘汰,可找相关替代品。
  4. Jsoup:html解析工具
  5. webmagic:java语言开源的一个爬虫工具,比较简单方便。

技术(照猫画虎也能用,但是了解其原理更有助于扩展)

  1. HTML/CSS:了解html的标签含义,以及基本属性、css的使用。
  2. HTTP/HTTPS:了解get/post请求的原理,url/header/body的部分参数及相应含义。
  3. IO/文件处理:因为会涉及到一些图片/文件的下载,以及文件的处理(如验证码图片的解析)。
  4. JavaScript:了解一些ajax,jquery等技术的异步操作。
  5. 爬虫思维:了解一些反爬机制,爬取的效率/仿真处理等。
  6. 编码/解码、乱码处理:可能会碰到一些相关问题。
  7. 代理/分布式:可能会用到的一些设计。

简单参考:java使用webmagic爬取网页内容的基本环境准备


这里是之前的一些简单整理

在练习的过程中,就会碰到各种各样的问题,会发现python提供的资源库更加丰富、有效一些。java的相关依赖库比较少或者效果差。

二、验证码相关

很多网站为了防止爬虫获取信息,或者影响服务器的运行,做了很多反爬的措施,验证码就是其中之一。

关于验证码的一个小故事

当然现在已经出现了各种各样的验证码。从普通的图片验证码、滑动验证码、极验验证码到reCAPTCHA、12306令人发指的选图验证码,当然还有手机验证码。

1. 图片验证码

JAVA生成图片验证码的简单代码实现(干扰线、字扭转、ocr识别)

当然,这里也可以购买第三方的识别服务进行处理。(听说是一堆人守着电脑,人工识别处理,全天二十四小时服务。应该是有自动化工具吧)

2.极验验证码

【滑动】JAVA使用selenium破解极验验证码(下载背景图+识别缺口+移动轨迹处理)
【点选】JAVA模拟点选验证码的简单尝试

还有其他的,手势、图片选择、九宫格一类的相比滑动更加艰难,技术不够,好难

3.ip代理,三方动态代理

具体代理自己找或者购买
JAVA利用httpClient-jsoup-chromeDriver设置IP代理或者三方动态代理

其他待续…

碰到的一个反爬场景,它吃光了对应机器的内存,导致应用服务也没法正常使用


   原创文章,转载请标明本文链接: JAVA处理爬虫逻辑的相关信息整理、代码实现、逻辑整理

如果觉得我的文章对您有用,请随意打赏。您的支持将鼓励我继续创作!

发表评论

电子邮件地址不会被公开。 必填项已用*标注

更多阅读