开发中,免不了需要添加一些假数据方便测试,但是自己添加的一般又不会太规范,所以使用爬虫来给系统添加一些假数据方便测试。
一:图片数据获取
ps:【我获取的是500px上面的数据】
1.打开500px官网,打开F12即可获取到该资源链接,修改page页码即可。
2.实际使用中,可能会出现防盗链,图片403情况,页面头部添加<meta name="referrer" content="no-referrer" />
即可
String url="https://500px.com.cn/community/discover/rankingRise";
//实际中,修改下方链接中的page页码即可,我这里写死了
String result = HttpUtils.sendGet(url,"resourceType=0,2&startTime=&page=1&size=30&type=json");
JSONArray jsonArray = JSONArray.parseArray(result);
for(Object obj : jsonArray){
JSONObject json = (JSONObject)obj;
JSONObject urlList = (JSONObject)json.get("url");
//通过F12可以看到该接口Json串url字段是图片的链接,url字段里有p1,p2,p3,p4字段,分别对应图片大小
System.out.println("图片的链接是:" + urlList.get("p3").toString());
}
一:新闻数据获取
ps:【我获取的是百度新闻上面我们本地的新闻数据,利用Jsoup对页面数据进行获取,然后保存数据库】
1.打开百度新闻页面,例如我要获取的是https://www.henan100.com/news/hn/
这个页面的新闻
2.获取新闻列表页数据,打开F12,页面一直向下滑动,会发现这个页面一直加载,只不过是数字变了变。(使用循环获取每个页码的数据,本文示例只获取一个列表页面的数据
)
3.我们就可以通过调这个页面的接口来获取不同页码下的列表数据
4.利用jsoup需要分析页面上的html标签,接下来分析一下列表页
的标签
4.捎带着分析一下详情页
的标签
5.上代码根据上面的思路获取数据 - 【我就不保存数据库了,就写一段这个代码,剩下的你们发挥吧。】
//根据链接获取该列表页dom(实际中可以使用循环,改改1_1_1455这几个数字即可)
Document doc = Jsoup.connect("https://www.henan100.com/e/action/ListInfo/1_1_1455.shtml").get();
//根据列表页,找出来所有详情页的链接
Elements allLinks = doc.getElementsByClass("news-list").select("a[href]");
for(Element ele : allLinks){
String href = ele.attr("href");
//根据详情页链接,获取详情页的dom
Document detailDOM = Jsoup.connect(href).get();
//获取详情页中class为newsContentLeftTitle元素下面的h1标签内容
String title = detailDOM.select("div.newsContentLeftTitle>h1").text();
System.out.println("文章标题:"+ title );
//获取详情页中ID为contentWraper的div标签内容
String content = detailDOM.select("div#contentWraper").html();
System.out.println("文章内容:"+ content );
System.out.println("发布时间,责任编辑,审核人等标签我就不一一列举了,自行获取吧!");
System.out.println("码文不易,如果感觉有一点用,点个赞在走吧!");
}
ps: 包名 import org.jsoup.Jsoup;