目录
- 总述
- 网络爬虫的遍历策略
- 架构
1.总述
通常,访问一个网页,需要一个初始URL,然后通过这个页面的超链接才能跳转到其他页面。同理,一个爬虫通过初始URL列表(种子链接)访问到初始网页,并提取其中的URL添加到工作队列,判断该工作队列的URL是否访问过页面;是,从工作队列中移除并添加到以遍历表;否,放进工作队列,继续访问页面,流程图如下
以采取博客园文章标题为例
public class NewBio {
LinkedBlockingQueue<String> workList; //工作队列
HashSet<String> visited; //已遍历URL
public NewBio() {
this.workList = new LinkedBlockingQueue<>();
this.visited = new HashSet<>();
}
public void run() {
while (workList.size() > 0) { //工作队列不为空
String strUrl = workList.iterator().next();
workList = parseLink(strUrl);
workList.remove(strUrl);
vi