2021-01-20

如何利用java写一个爬虫程序

如何利用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/

折扣网站: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