JAVA爬虫现学现卖

#这么晚大家都睡了吧,给大家发一个java爬虫
这是我现学现买 IO流的输入输出,异常的处理、获取文件位置,其中的Elemants元素
学习java爬虫必会的基础就是HTML 这也是程序员的基础吧!
JAVA总的来说什么都可以干真的很强大,一直认为只有Python可以写人工智能和大数据
其实JAVA也是可以的也难怪JAVA能屹立在圈里这么久。
我不知道以后的方向是什么,既然JAVA功能这么好就努力的学下去。总有一个方向适合我。

static String url="https://pvp.qq.com/web201605/herolist.shtml";
	static String path="F://img/";
	/**
	 * 根据网络地址
	 * @param url
	 */
	public static void getImages(String url){
		//加载对应网址html代码
			try {
				Document document= Jsoup.connect(url).userAgent("Mozilla/4.0(compatible; MSIE 9.0;Widnows NT 6.1;Trident/5.0)").get();
				//System.out.println(document);
				//从HTML中找到并获取显示的ul标签
				Elements selectUL=document.select("[class=herolist clearfix]");
				//获取UL的li 查找li
				Elements selectLI=selectUL.select("li");
				//for循环遍历所有的li 获取详情页的地址及头像图片
				//for(int i=0;i<selectLI.size();i++) {//size是标签的长度
				//forEach 相当于给的集合或者是循环 e代表其中的每一个元素
				//Element 叫元素 (标签)
				for(Element e:selectLI) {
					//找到英雄详情页的地址//找到a标签下的HREF当中的属性
					String heroURL=e.select("a").attr("href");
					//System.out.println(heroURL);
					//获取英雄的名称
					String heroName=e.select("a").text();
					//System.out.println(heroName);
					//拼接详情页的地址
					String detailURL="https://pvp.qq.com/web201605/"+heroURL;
					Document doc= Jsoup.connect(detailURL).userAgent("Mozilla/4.0(compatible; MSIE 9.0;Widnows NT 6.1;Trident/5.0)").get();
					//显示背景div标签
					Elements div =doc.select("[class=zk-con1 zk-con]");
					//获取背景
					String bg=div.attr("style");
					//System.out.println(bg);
					//拆分字符串;裁处英雄图片的地址
					//substring(起始位置,终止位置)beginIndex,endIndex substring(start,end)
					//表示从substring(start,end)范围拆分字符串
					String heroImagesURL=bg.substring(16,bg.length()-11);
					System.out.println("开始下载:"+heroImagesURL);
					//规定图片下载的地址
					String url2=path+heroName+".jpg";
					//下载图片
					//http://
					download("https:"+heroImagesURL,url2);
				}
			} catch (IOException e) {
				// TODO Auto-generated catch block
				e.printStackTrace();
			}
	}
	/**
	 * 下载指定路径下的图片
	 * @param url
	 */
	public static void download(String Imgurl,String path) {
		//构建URL链接
		try {
			URL url=new URL(Imgurl);
			//IO 流  要从网站下下来就要变成流     把这个动心变成液体  通过管道输送到自己的程序  io流就是管道
			//输入流,网页图片液化 输送到程序中
			//url.openStream()开启一个字节流
			DataInputStream dataInputStream=new DataInputStream(url.openStream());
			//输出流,将图片的是数据,输送到指定的文件夹中
			FileOutputStream outputStream=new FileOutputStream(path);
			ByteArrayOutputStream output =new ByteArrayOutputStream();
			byte[] buffer=new byte[1024];
			int length=0;
			while((length=dataInputStream.read(buffer))!=-1) {
				output.write(buffer,0,length);//不在读取了到-1 -1是末尾
			}
			outputStream.write(output.toByteArray());
			outputStream.close();
			dataInputStream.close();
			output.close();
		} catch (Exception e) {
			// TODO Auto-generated catch block
			e.printStackTrace();
		}
	}

大家可以关注我,我慢慢学也与大家慢慢分享,共同努力,现在是一个开源的时代。

评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包

打赏作者

北极猿

你的鼓励将是我创作的最大动力

¥1 ¥2 ¥4 ¥6 ¥10 ¥20
扫码支付:¥1
获取中
扫码支付

您的余额不足,请更换扫码支付或充值

打赏作者

实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值