首页 新闻 赞助 找找看

请问怎么高效的爬数据?

0
悬赏园豆:20 [待解决问题]

最近在学习数据库方面的知识,本来想模拟一些数据练习的,后来想了想还是想弄些真实数据来练习,于是就用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方面的知识解答,多谢啦

空城灬无旧人的主页 空城灬无旧人 | 初学一级 | 园豆:115
提问于:2019-07-20 02:03
< >
分享
所有回答(1)
0

一个问题一个问题解决.
会断开就加重试机制.单线程慢就多线程.
本地带宽不够就放服务器.

吴瑞祥 | 园豆:29449 (高人七级) | 2019-07-20 15:51
清除回答草稿
   您需要登录以后才能回答,未注册用户请先注册