乐趣区

关于java:Java爬虫开发总结

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 后重试

退出移动版