最近学习python过程中一直在学习爬虫,感觉很有意思。也曾使用了python+scrapy爬了一个简单的网站,感觉难度不大,主要集中在正则表达式上。但是我是一个java工程师,那么用java没理由爬不了呀。所以开始学习用java爬取数据,入门嘛,就先不上正则表达式了,慢慢消化。这里只展示把所需网页的源码读取并保存在本地的方法,以后会慢慢进行更深入的学习,核心代码如下:
private static void spider(String url){
try {
URL urls=new URL(url); // 指定要爬取得网站
URLConnection urlconnection=urls.openConnection(); // 类似于python 中的urlopen 个人理解为发送请求并用一个对象去接
urlconnection.setRequestProperty("User-Agent", "Mozilla/4.0 (compatible; MSIE 7.0; Windows NT 5.1)"); // 有些浏览器会查看浏览器信息,防止爬取。
InputStream ins=urlconnection.getInputStream(); // 以流的方式读出内容
BufferedReader buff = new BufferedReader(new InputStreamReader(ins, "utf-8")); // 以字符流读入
StringBuffer sb=new StringBuffer(); // 把内容提取出来
String lines="";
while((lines=buff.readLine())!=null){
sb.append(lines+"\n");
}
OutputStreamWriter ops=new OutputStreamWriter(new FileOutputStream("W:/qiubai.html",true),"utf-8"); // 写入到本地的W盘中,命名为qiubai.html
ops.write(sb.toString());
} catch (MalformedURLException e) {
// TODO Auto-generated catch block
e.printStackTrace();
} catch (IOException e) {
// TODO Auto-generated catch block
e.printStackTrace();
}
}