【原创源码】网络爬虫
优采云 发布时间: 2020-07-02 08:01
最近因为女朋友工作需求,需要获取各大团购网站上的店家信息,这样自动一个一个点不得气死,于是我就写了一个网络爬虫来解决这个问题,是用java写的,主要用到了两个开源库,httpclient和jsoup...用来获取网页数据和得到想要的数据,不过最好是有点web基础网络爬虫代码,这样就可以只要想要的值,不然会有很多没用的数据,后期还要自动删掉,比较麻烦...下面附上源码和说明...
[Asm] 纯文本查看 复制代码
public static String getHtmlByUrl(String url){
String html = null;
HttpClient httpClient = new DefaultHttpClient();//创建httpClient对象
HttpGet httpget = new HttpGet(url);//以get方式请求该URL
try {
HttpResponse responce = httpClient.execute(httpget);//得到responce对象
int resStatu = responce.getStatusLine().getStatusCode();//返回码
if (resStatu==HttpStatus.SC_OK) {//200正常 其他就不对
//获得相应实体
HttpEntity entity = responce.getEntity();
if (entity!=null) {
//html = EntityUtils.toString(entity);//获得html源代码
InputStream in = entity.getContent();
entity.getContentType();
Scanner sc = new Scanner(in);
StringBuffer str = new StringBuffer("utf-8");
while(sc.hasNextLine()){
str.append(sc.nextLine());
}
html = str.toString();
//sc.close();
}
}
} catch (Exception e) {
System.out.println("访问【"+url+"】出现异常!");
e.printStackTrace();
} finally {
httpClient.getConnectionManager().shutdown();
}
return html;
}
上面的就是httpclient库的内容,用它来获取html页面的数据
[Java] 纯文本查看 复制代码
public static void main(String[] args) throws WriteException, IOException {
String html = getHtmlByUrl("需要获取数据的网址");
if (html!=null&&!"".equals(html)) {
Document doc = Jsoup.parse(html);
Elements linksElements = doc.select("div.basic>a"); //如果有web基础的话,可以设置一下这里,知道自己想要的数据
for (Element ele:linksElements) {
String href = ele.attr("href");
String title = ele.text();
System.out.println(href+","+title);
}
}
}
这个就是解析获取来的html数据,找到自己想要的数据....
然后把取到的数据存入excel获取txt里就随大伙便了,不过这个方式有一个漏洞就是,只能取静态页面,动态页面未能实现,我还要再继续研究一下,研究下来了,再发下来,如果有哪些不懂的网络爬虫代码,可以问我,知道的一定告诉你们,希望你们多评分,多鼓励,非常谢谢!!!!