首页 > 应用开发 > > 请问怎么高效的爬数据?
最近在学习数据库方面的知识,本来想模拟一些数据练习的,后来想了想还是想弄些真实数据来练习,于是就用jsoup到国家统计局官网上爬全国的省市区镇乡的信息,粗略估计了下大概有八九十万的数据,但是它的网页是树状图类型,节点特别多,我只会一点简单的jsoup爬,就下面这样:
String url = "http://www.stats.gov.cn/tjsj/tjbz/tjyqhdmhcxhfdm/2018/index.html";
Document doc = Jsoup.connect(url).timeout(500000).maxBodySize(0).get();
Elements provinces = doc.select("........");
然后foreach,类似递归那样一层一层获取数据存到excel,不敢一次性爬,用代理IP开多线程一般就一两条线程能爬完,有时候经常爬了几千条就断开连接了,而且很容易被拒绝访问,请问路过的大神我该怎么爬?
另外这个网站的编码都是gb2312的,爬下来好多生僻字乱码,试过用:
Document document = Jsoup.parse(new URL(url).openStream(),"gbk","url");解决大部分生僻字乱码,但还是有少数乱码解决不了
以上问题找过很多方法都没完全解决,所以请各位大神帮帮忙,我是学Java的,希望回答的大神能用Java方面的知识解答,多谢啦
来自 “ ITPUB博客 ” ,链接:https://blog.itpub.net/4692/viewspace-3120433/ ,如需转载,请注明出处,否则将追究法律责任。