java爬虫知识总结

●爬虫原理:

  通过URL获得网页地址并获得源码内容的IO流后,使用按行读取,将源码保存在本地的文件中,从而获得需要处理的原始数据(网页源码。同时在按行读取的过程中,使用正则匹配对读取数据进行比对,找到其中的超链接标签<a.*href = .+/a>并进行保存,以便于进行下一个次网页的爬取,最终达到对起始网页进行指定深度的爬取。可以通过实现多线程提高爬虫效率。

 

●java爬虫实现之核心Java知识涉及:

1、URL知识的运用:

      **URL:实列化URL,获得链接的地址

      **URLConnection:获得地址的链接。同时可以通过此类得链接的IO流(字节输入流)。

 

2、正则匹配:

       ** Matche类,Pattern类的使用。

       **超链接字段的匹配规则:<a.*href = .+/a>

          **超链接字段的范列:<a href="http://www.w3school.com.cn/" target="_blank">Visit W3School!</a>

 

3、多线程的使用:

      **自定义线程类:继承Thread类或者实现Runnable类,覆写run()方法(算法)

      **synchronized关键字的运用:设置同步代码块或同步方法,实现对共享资源的排队使用(数据队列)

      》使用线程提高处理效率的原理:在线程中建立同步代码块,使不同线程之间共享数据。保证在资源足够的前提下,多个线程同时处理一个问题,实现并发效果。

      》可能产生的问题:线程因时间差对资源进行非法访问。

      》通过控制线程运行状态限制线程资源的访问。如线程的休眠、唤醒等。如果当前资源不足,便将请求资源的线程挂起,进入休眠状态,当资源满足条件时,在唤醒等待的线程。

 

4、String类型:

      **常用操作方法的使用:字符串的截取,返回指定子字符串位置等

      **String类型也对正则匹配进行直接支持,但没有直接使用

5、IO流:

      **对IO流的熟练使用:字节操作流,字符操作流,缓存流,打印流,转换流,管道流(未使用)

      **IO流的封装与转换,基础流(字节,字符)->封装流(缓存)

      **IO流的向上转型实列化。

 

6、java类集:可以看做数组类型的升级版

      **List<K>接口:可重复元素集,

                **被实现的常用子类:ArrayList

      **Set<K>接口:不可重复元素集

                **被实现的常用子类:HashSet

      **Map<K,V>接口:二元映射集

                **被实现的常用子类:HashMap

 

posted @ 2018-10-23 23:39  怪兽不纯粹  阅读(231)  评论(0)    收藏  举报