如何利用java写一个爬虫程序
首先,要先导入jsoup依赖
<dependency> <groupId>org.jsoup</groupId> <artifactId>jsoup</artifactId> <version>1.12.1</version></dependency>
导入依赖之后,就可以通过jsoup来写爬虫程序了,先获取百度网页的标题试试看
String url = "http://www.Baidu.com";//这里设置要访问网页的url地址Document document = Jsoup.connect(url).get();//使用jsoup访问网址,然后调取get方法,获取网页源代码,转换成document类型对象String title = document.title();//获取网页的标题System.out.println(title);
结果展示:
成功获取网站的标题
我们也可以通过这个方法来获取网页的整个源代码System.out.println(document.body());
这样就能输出百度网页的源代码,不过这样并没有什么用,但是可以发现一件有趣的事情,在浏览器的控制台中出现了:
有些网站就以这样的方式,当你用爬虫程序访问时,把招聘的网址显示在浏览器的控制台中
那么,应该怎么样利用爬虫获取想要的信息?
最重要的步骤就是我们要去我们想要获取信息的网页,查看它的源代码,弄明白我们要的数据存放在哪一个标签里
比如说,我们要获取这个网站的h1标签内的内容
Document document = Jsoup.connect(url).get();Element body = document.body();String h1 = body.getElementsByTag("h1").get(0).text();//获取第一个h1标签里的内容
如果这样写,
Document document = Jsoup.connect(url2).get();Element body = document.body();String li = body.getElementsByTag("li").text();
将会返回这个网页中所有li标签的内容,所有li中的内容会以空格为间隔符拼接符连成一个字符串返回,
所以要逐个获取,我们可以将其拆分
String li = body.getElementsByTag("li").text();String[] lis = li.split(" ");for(int i=0; i<lis.length; i++){ System.out.println(lis[i]); }
也可以获取dom元素的任何一个子元素的内容,这点和js一样
Document document = Jsoup.connect(url2).get();Element body = document.body();Element hhh = body.getElementById("hhh");//获取名为hhh的dom元素String a = hhh.getElementsByTag("a").get(0).text();//获取该元素下的第一个a标签的文本内容
如果要把爬虫获取的数据写入数据库的话,一定不要在for循环中每次获取都将其插入数据库,因为爬虫获取的数据条数庞大,这样做很容易导致数据库的资源
占用过多而崩溃。
最好在获取完所有的数据后再一次性写入数据库。
现在的大多数都有反爬虫的措施,当我们爬虫程序请求次数过多,控制台就会报504错误,那是因为网页限制了你的爬虫请求
原文转载:http://www.shaoqun.com/a/512401.html
折扣网站:https://www.ikjzd.com/w/74
韩蓬:https://www.ikjzd.com/w/1635
如何利用java写一个爬虫程序首先,要先导入jsoup依赖<dependency><groupId>org.jsoup</groupId><artifactId>jsoup</artifactId><version>1.12.1</version></dependency>导入依赖之后,就可以通过jso
立刻网:立刻网
易麦:易麦
【苏州金鸡湖龙舟赛】2020苏州金鸡湖龙舟赛时间、地点、活:【苏州金鸡湖龙舟赛】2020苏州金鸡湖龙舟赛时间、地点、活
亚马逊小白投放Sponsored Product广告有哪些技巧?:亚马逊小白投放Sponsored Product广告有哪些技巧?
深圳观澜汽车站有没直达广州天河客运站的车?:深圳观澜汽车站有没直达广州天河客运站的车?
No comments:
Post a Comment