java怎么写网络爬虫_如何利用java写一个爬虫程序

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

首先,要先导入jsoup依赖

org.jsoup

jsoup

1.12.1

导入依赖之后,就可以通过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);

结果展示:

2e98329a3548fdcf2dcbf637afd7d2eb.png

成功获取网站的标题

我们也可以通过这个方法来获取网页的整个源代码

System.out.println(document.body());

这样就能输出百度网页的源代码,不过这样并没有什么用,但是可以发现一件有趣的事情,在浏览器的控制台中出现了:

7f28758d17be77755b347fde170aae1e.png

有些网站就以这样的方式,当你用爬虫程序访问时,把招聘的网址显示在浏览器的控制台中

那么,应该怎么样利用爬虫获取想要的信息?

最重要的步骤就是我们要去我们想要获取信息的网页,查看它的源代码,弄明白我们要的数据存放在哪一个标签里

比如说,我们要获取这个网站的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

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错误,那是因为网页限制了你的爬虫请求

  • 0
    点赞
  • 1
    收藏
    觉得还不错? 一键收藏
  • 0
    评论
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

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

余额充值