阿里云服务器ECS    
弹性可伸缩的计算服务,助您降低 IT 成本,提升运维效率,使您更专注于核心业务创新 [咨询更多]
阿里云存储OSS
简单易用、多重冗余、数据备份高可靠、多层次安全防护安全性更强、低成本 [咨询更多]
阿里云数据库RDS
稳定可靠、可弹性伸缩、更拥有容灾、备份、恢复、监控、迁移等方面的全套解决方案 [咨询更多]
阿里云安全产品
DDoS高防IP、web应用防火墙、安骑士、sll证书、态势感知众多阿里云安全产品热销中 [咨询更多]
阿里云折扣优惠    
云服务器ECS、数据库、负载均衡等产品新购、续费、升级联系客服获取更多专属折扣 [咨询更多]
在网站扫描领域网站爬虫
2020-9-11    点击量:
  网站爬虫   由于是针对网站应用进行的扫描,所以利用爬虫遍历网站中的所有页面就变得必不可少了。在网站扫描领域,利用爬虫主要是希望对网站的资产能够进行全面了解和梳理,因为在多数情况下,我们并不需要把网站的页面内容抓取下来,只要能够遍历所有的页面即可。
  
  在网页遍历过程的某些场景下,还需要进行登录扫描,主要是因为在企业网站中,有些页面只有在成功登录后才能访问到。常见的网站登录扫描方式有两种,一种是把在登录页面中需要填写堤交的内容记录下来,然后模拟登录过程,另一种是把登录后的Cookie提取出来,用作登录凭证。
  网站爬虫
  有关爬虫技术的相关文档及自动化的工具大家可以自行了解,此处不再盩述。下面提供一^简单的爬虫。
  
  import
  
  import
  
  import
  
  import
  
  import
  
  import
  
  java.io.lOException;
  
  j ava. r.e t. SocJcetTimecutException;
  
  java.net.URI;
  
  java.net.URISyntaxException;
  
  j ava. r.e t. UnkncwnHos tExceprion;
  
  j ava.urii.ArrayList;
  
  import org.j soup.HttpStatusExceprion;
  
  import org.jsoup.Jsoup;
  
  import org. j soup. Unsuppcrt ed2*Iiir.eTypeExceprion;
  
  irt^ort org.jsoup.nodes.Document;
  
  irt^ort org.jsoup.nodes.Element;
  
  irt^ort org. jsoup. select .Elements;
  
  public class Crawler {
  
  static String initial_uri_string = "http://new3.sina.com.cn'*;
  
  static String domain = M3ina.com.cn";
  
  public static void main(String[] arg3) {
  
  URI newURI;
  
  URI baseUR: = null;
  
  int index = 0;
  
  String uriString;
  
  ArrayList<StrLng> uriStringAL = new Array二ist<String>{);
  
  uriStringAL.add(initial uri string);
  
  do {
  
  uriString = uriStringAL.ger(index++);
  
  System.out.println(M (M + index + ••/•’ + uriStringAL.size () +
  
  •,)Crawling _,+ uriString + _,. .. M);
  
  try {
  
  baseURI = new URI(uriString);
  
  Document doc =
  
  Jsoup.connect(uriString).userAgent("Mozilla/S.0").get();
  
  Elements es = doc.getElementsByTag("a");
  
  for (Element e:es) {
  
  newURI = :ba3eURI.re3〇lve{e.attr{"href") ) ,•
  
  if (newURI.getHostO .end3With(dcir.ain)) {
  
  if (!uriStringAL.scntains(newUR二•toString()} s&
  
  ! nev>»URI. toString 〇 . isEmpty () ) {
  
  uriStringAL•add(newUR二•toString()};
  
  }
  
  }
  
  }
  
  } catch (SocketTimeoutException e) {
  
  Sy3teir..our .println {',Soc■cetTi3[leoutExcep'Cion,,);
  
  } catch (Un-cnov/nKcstException e) {
  
  Sy3teir..our .println {"UnJcnownHcstException");
  
  } catch {IllegaLArgumentSxsep'Cion e> {
  
  System.out .println二llegalArgurcientException");
  
  } catch (HttpStatusException e) {
  
  System, our .println {''HttpStatusException");
  
  } catch (UnsupportedMimeTypeZxception e) {
  
  System, our .println {',UnsuppcrtedMiir.erypeExceprionM);
  
  } catch {lOExseption e) {
  
  System, out .println 厂二CException’’};
  
  } catch (URISyntaxSxseption e> {
  
  System, out .println {•’URISyntaxExseption”);
  
  } catch (NuliPointerException e) {
  
  System.our.println{"NullPointerExceution");
  
  }
  
  } while (uriStringAl.size() > index);
  
  }
  
  }
联系客服免费领取更多阿里云产品新购、续费升级折扣,叠加官网活动折上折更优惠