Java爬虫须要的库:次要是Jsoup和OKHTTP

具体的依赖如下:

<!--        为了利用httpclient拜访url,爬虫用-->        <dependency>            <groupId>commons-httpclient</groupId>            <artifactId>commons-httpclient</artifactId>            <version>3.1</version>        </dependency>         <!-- https://mvnrepository.com/artifact/org.jsoup/jsoup -->        <dependency>            <groupId>org.jsoup</groupId>            <artifactId>jsoup</artifactId>            <version>1.8.3</version>        </dependency>        <!-- 文件下载 -->        <dependency>            <groupId>commons-io</groupId>            <artifactId>commons-io</artifactId>            <version>2.5</version>        </dependency>         <!-- https://mvnrepository.com/artifact/org.apache.httpcomponents/httpclient -->        <dependency>            <groupId>org.apache.httpcomponents</groupId>            <artifactId>httpclient</artifactId>            <version>4.5.5</version>        </dependency>

其中jsoup次要是实现爬虫页面解析,okhttp用来做数据申请获取页面信息

工具类文件地址(我的码云仓库):

https://gitee.com/stephaniezh...

Jsoup页面解析留神
自身Jsoup提供了很多的条件筛选接口,比方按class筛选,按attr筛选等,然而我发现不晓得是本人应用不精确还是性能不稳固,很多时候按class指定查找元素等很不好用,所以我就会起初一律应用:

Element parents; Elements childs = parents.getAllElements();

大量应用getAllElements()这个函数,而后从找出的childs中持续筛选想要的hml元素,比方判断child.html()是否蕴含某个特色款式串等,找到想要的节点

应用代理服务器进步成功率
我目前次要应用的两个代理服务器:

然而因为服务器上的代理IP是会不停更新或生效的(每天),所以须要动静的从这些代理服务器上获取最新的代理IP端口,在程序执行爬虫操作的时候,一旦发现哪个IP不可用就抛弃他,以便保障咱们程序应用的代理永远是新的更无效的

国内最新收费HTTP代理IP平台 - 蜜蜂代理

浏览器爬虫插件WebScrapper
个别时候,咱们有可能须要长期批量采集一些网页数据,间接开发程序消耗的老本可能比拟高,就能够思考用浏览器爬虫插件,我最近用了一个WebScrapper,Chrome和Edge都有都能够用的

留神要点
(1) 爬虫为了进步拜访成功率,除了根底的获取页面申请,还可能须要润饰一下申请Header,以及cookie一些数据

(2)防止被服务器封禁号,可能须要切不同的IP进行尝试,即解决一下代理IP,做成保护动静的代理IP后重试