案例:一个java爬虫程序
1.案例说明
做了一个爬取某程的旅游网站的java程序,程序主要爬取安庆酒店的某些相关信息。
材料准备:jsoup-1.8.1.jar(需要此架包的联系博主,有任何问题欢迎随时咨询)
直接上代码:
package util;
import java.io.BufferedReader;
import java.io.InputStreamReader;
import java.net.URL;
import java.net.URLConnection;
import java.util.ArrayList;
import java.util.HashMap;
import java.util.List;
import org.jsoup.Jsoup;
import org.jsoup.nodes.Document;
import org.jsoup.nodes.Element;
import org.jsoup.select.Elements;
public class CopyOfDataDownUtil {
/**
*
* @param url
* @param enconding
* @return
*/
public static String getHtmlResourceByUrl(String url,String enconding){
StringBuffer buffer=new StringBuffer();
InputStreamReader isr=null;
try {
//建立网络链接
URL urlOb=new URL(url);
//打开网络链接
URLConnection uc=urlOb.openConnection();
//建立文件输入流
isr=new InputStreamReader(uc.getInputStream(),enconding);
//缓冲
BufferedReader reader=new BufferedReader(isr);
//建立临时文件
String line=null;
//开始读取源代码
while(((line=reader.readLine())!=null)){
//将临时文件保存到StringBuffer
buffer.append(line+"\n");
}
} catch (Exception e) {
e.printStackTrace();
}finally {
//防止空指针
if(isr!=null)
try {
isr.close();
} catch (Exception e) {
e.printStackTrace();
}
}
return buffer.toString();
}
//解析源代码 获取相应的数据
public static List<HashMap<String,String>> getHotelInfo(String url,String encoding){
//根据网址获取网址源代码
String html=getHtmlResourceByUrl(url, encoding);
//解析源代码
Document document=Jsoup.parse(html);
//获取hotel_list 盒子里面的容器
Element element=document.getElementById("hotel_list");
//拿到每一个酒店
Elements elements=element.getElementsByClass("searchresult_info");
List<HashMap<String, String>> maps=new ArrayList<HashMap<String,String>>();
//拿到每一个酒店的名称,图片 描述 遍历
for (Element el : elements) {
HashMap<String, String> map=new HashMap<String, String>();
//获取酒店的图片
String imgSrc=el.getElementsByTag("img").attr("src");
//获取酒店的描述
String content=el.getElementsByClass("searchresult_htladdress").text();
//获取酒店的名称
String title=el.getElementsByTag("img").attr("alt");
map.put("imgSrc", imgSrc);
map.put("content", content);
map.put("title", title);
maps.add(map);
}
return maps;
}
public static void main(String[] args) {
//得到一个list集合
List<HashMap<String, String>> ht