您的位置:首页 > 运维架构 > 网站架构

Java实现网页爬虫(Jsoup)获取网站ip数据(仅供学习,请勿使用于非法途径)

2019-05-08 17:27 841 查看
版权声明:本文为博主原创文章,转载请附上博文链接! https://blog.csdn.net/qq_41741884/article/details/89963027

1、很多时候我们都需要爬取网页数据来做一些基础数据,随着需求的增加各种语言也逐渐支持爬虫,那么java能不能呢?答案是必然的,下面就是使用Java实现爬虫的所需jar包以及小脚本:

import java.io.IOException;
import java.util.ArrayList;
import java.util.List;
import org.jsoup.Jsoup;
import org.jsoup.nodes.Document;
import org.jsoup.select.Elements;

/**
* jsoup爬取网页数据
* 核心在于理解代码
* 而不是去无脑复制
*
* @author Xuan
*
*/
public class proxytest1 {
public static void main(String[] args) {
List<Object> prefixips = new ArrayList<Object>();// 存起始ip地址
List<Object> suffixips = new ArrayList<Object>();// 存结束ip地址
List<Object> portarr = new ArrayList<Object>();// 存端口数量
Document doc = null;
try {
doc = Jsoup.connect("http://ip.bczs.net/country/ID").get();//发起一个请求网页
} catch (IOException e1) {
e1.printStackTrace();
}
// 获取目标HTML代码
Elements elements1 = doc.select("[class='well']");
Elements elements2 = null;
Elements elements5 = null;
Elements elements6 = null;
Elements elements3 = null;
Elements elements4 = null;
Elements elementsa = null;
Elements elementsport = null;
//获取子级定位目标标签
elements2 = elements1.select("table");
elements5 = elements2.select("tbody");
elements6 = elements5.select("tr");
//循环tr标签获取数据
for (int i = 0; i < elements6.size(); i++) {
elements3 =  elements6.get(i).select("td").eq(0);
elementsa = elements3.get(0).select("a").eq(0);	// 第一个ip
elements4 = elements6.get(i).select("td").eq(1);//第二个ip
elementsport = elements6.get(i).select("td").eq(2);//端口数量
prefixips.add(elementsa.text());
suffixips.add(elements4.html());
portarr.add(elementsport.text());
}
for (int i = 0; i < prefixips.size(); i++) {
System.out.println("起始ip:"+prefixips.get(i)+"结尾ip:"+suffixips.get(i)+"端口数量:"+portarr.get(i));
}
}
}

2、效果如下图:

3、本次爬取的对方网址为:http://ip.bczs.net/country/ID

内容来自用户分享和网络整理,不保证内容的准确性,如有侵权内容,可联系管理员处理 点击这里给我发消息
标签: