爬虫中使用的数据结构
来源:互联网 发布:女性 音乐家 知乎 编辑:程序博客网 时间:2024/06/05 05:43
我选择HashSet和LinkedList来保存待访问URL和已访问的URL。
package com.js.demo01;/** * 队列用于保存待爬取的URL */import java.util.LinkedList;public class Queue {private LinkedList<Object> queue = new LinkedList<Object>();/** * 入队列 * @param t 待进入队列的URL * @return void 无返回值 */public void enQueue(Object t){queue.addLast(t);}/** * 出队列 * @return 本次出队列的URL */public Object deQueue(){return queue.removeFirst();}/** * 判断队列是否为空 * @return 返回判断结果 true为空 */public boolean isQueueEmpty(){return queue.isEmpty();}/** * 判断队列是否包含 * @param t 待判断是否包含的对象t * @return 返回判断结果 true为包含 */public boolean contains(Object t) {return queue.contains(t);}/** * 清空队列 * @return 返回队列是否为空的判断结果 */public boolean empty(){return queue.isEmpty();}}
package com.js.demo01;import java.util.HashSet;import java.util.Set;/** * HashSet用于记录已爬取的URL * @author js * */public class LinkQueue {//已访问的URL集合private static Set<Object> visitedUrl = new HashSet<Object>();//待访问的URL集合private static Queue unVisitedUrl = new Queue();//获得URL队列public static Queue getUnVisitedUrl(){return unVisitedUrl;}//添加到访问过的URL队列中public static void addVisitedUrl(String url){visitedUrl.add(url);}//移除访问过的URLpublic static void removeVisitedUrl(String url){visitedUrl.remove(url);}//未访问过的URL出列public static Object unVisitedUrlDeQueue(){return unVisitedUrl.deQueue();}//保证每个URL只被访问一次public static void addUnvisitedUrl(String url){if(url!=null&&url.trim().equals("")&&!visitedUrl.contains(url)&&!unVisitedUrl.contains(url))unVisitedUrl.enQueue(url);}//获得已访问的URL数目public static int getVisitedUrlNum(){return visitedUrl.size();}//判断未访问的URl队列中是否为空public static boolean unVisitedurlsEmpty(){return unVisitedUrl.empty();}}
阅读全文
0 0
- 爬虫中使用的数据结构
- python爬虫中cookie的使用
- java爬虫中Element类中各方法的使用
- 爬虫weblech的使用
- python爬虫的使用
- 网络爬虫 的 算法+数据结构
- 爬虫——使用BeautifulSoup4的爬虫
- java jdk中使用到的数据结构
- DSR中使用到的主要数据结构
- 应用中如何使用适当的数据结构
- 关于数据结构中栈的若干使用
- 数据结构中双指针的使用
- 数据结构中关于二叉树的使用
- 爬虫中遇到的问题
- 使用scrapy编写的爬虫
- scrapy爬虫框架的使用
- 使用jsoup的爬虫例子
- 爬虫学习 cookie的使用
- 网传的南方某科技大学最新研究成果
- 大数据技术入门
- [leetcode]554. Brick Wall
- Regular expressions are commonly used
- maven之clean、install命令
- 爬虫中使用的数据结构
- ArcGIS Earth数据小析
- #leetcode#500 Keyboard Row
- shader
- [提交答案题] UOJ #109 【APIO2013】TASKSAUTHOR
- shader2
- PAT 1001
- 一个神奇的???whatever~~
- PAT 1002