Yuque Archive
寻常的路

Java,爬虫,知网,以及编程中要注意的事项

最近工作中需要爬知网和WOS上的论文信息。

注意事项

问题:Java有一个爬虫框架,叫WebCollector。线程start后,会交由visitor执行请求。但是visit()中的异常没有任何输出,相当于try()catch{},catch中为空白。

影响:爬虫丢数据,某个visitor由于异常没有继续向下执行,并且程序没有任何报错。

原因:visitor是通过动态代理执行的。

解决:手动try catch

启发:写程序要正确处理异常

遗留:try_catch多大范围为宜?

问题:元数据爬虫中尽量不要有字符串截取的操作,很容易indexOutBound

问题:向sql服务器发出请求,带的参数要urlencode,并且可能需要转义'等字符

问题:一开始设计表的时候,要考虑足够大的容量。源数据可能会把多余的信息抓下来。

问题:爬虫缺数据,无法根据url定位数据

解决:及时打日志,把所有能打的信息都打出来,方便问题定位

问题:如何获取带header的js生成的数据

解决:webCollector提供了整合selenium的crawler,但是不支持header。所以用browserMob启动一个代理起来,会创建一个caplitites之类的对象,传入htmlDriver作为参数