【原创源码】网络爬虫

优采云 发布时间: 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里就随大伙便了,不过这个方式有一个漏洞就是,只能取静态页面,动态页面未能实现,我还要再继续研究一下,研究下来了,再发下来,如果有哪些不懂的网络爬虫代码,可以问我,知道的一定告诉你们,希望你们多评分,多鼓励,非常谢谢!!!!

0 个评论

要回复文章请先登录注册


官方客服QQ群

微信人工客服

QQ人工客服


线