实际上任务是利用任意一款好用的爬虫程序将期刊内容爬下来。不过万方数据上的期刊存储很规范,因此可以建立一个函数利用IndexOf配合Substring取得所需要的链接,这也让我明白了为何原来最初crawler程序里有个FindSpecificLink函数了。
寒假写的程序使用的是正则表达式匹配,这是为了方便下载一个页面的所有内容--文字、媒体等,而现在目标很明确,就是要下载期刊摘要。
具体改动的几处做一个记录:
1、增加一个ArrayList列表用来存储各期文章的导航链接。
2、增加函数FindArticles用以爬取文章摘要,其中要滤去pdf文档的干扰。
注:
1、在ArrayList中提取uri使用的是遍历器。
2、在研究滤去pdf文档的时候,发现万方数据上大多数pdf的链接都是以<ahref="开头,而html的文档均以<a href="开头,这样实际上是减少了区分两种文档的工作量。只是到98年的存档格式有所改变,一个是存储层次少了一层,二一个是无论pdf还是html都变成了<a href="格式。为了保证下载文档的纯度,还是加了一个while将其滤去。
有待改进的地方:
1、除了几个函数,程序的大部分代码集中在main函数中,也没想过写一个什么符合面向对象风格的程序,不过将那些臃肿的代码装进子函数还是很有必要的。
2、在以前的文章中我也提到过,由于单线程工作,在面对10*12*20个页面工作量的时候就显得过于缓慢,由于没有断点续传的功能,一旦网络出现不稳定将严重影响程序执行效率。于是将爬虫修改为多线程是众望所归的。