1.简单的爬虫程序的实现
思想:我们平常人访问浏览器的步骤是:
1.打开浏览器
2.输入网址
3.按回车
4.浏览页面信息
使用java爬虫也是同样的道理,第一步也是打开浏览器,那么怎么访问呢?学过java的同学都知道,在java世界里,万事万物皆对象。需要创建一个对象来完成我们需要达到的目的,httpClient对象可以帮助我们完成这一操作;第二步输入网址,同样也需要创建httpGet对象,对象创建完成就要使用它,第三步按回车使用httpClient对象发起请求;第四部肯定的获取信息啊,咋获取呢?当然是解析响应啦,使用HttpEntity对象获取响应,EntityUtils解析响应信息放到String定义的content中
详细代码如下:
import java.io.IOException;
/**
* @author wzb
* @date 2021/4/26 18:25
*/
public class CrawlerFirst {
public static void main(String[] args) throws IOException {
//1.打开浏览器,创建httpClient对象
CloseableHttpClient closeableHttpClient= HttpClients.createDefault();
//2.输入网址,发起get请求,创建httpGet对象
HttpGet httpGet=new HttpGet("https://www.hibu.edu.cn/index.html");
//3.按回车,发起请求,使用httpClient对象发起请求
CloseableHttpResponse response= closeableHttpClient.execute(httpGet);
//4.解析响应,获取数据
//判断状态码是否是200,只有在状态码是200访问才是成功的
if (response.getStatusLine().getStatusCode()==200){
HttpEntity httpEntity =response.getEntity();
String content= EntityUtils.toString(httpEntity,"utf8");
System.out.println(content);
}
}
}
所需要的包:
<!-- https://mvnrepository.com/artifact/org.apache.httpcomponents/httpclient -->
<dependency>
<groupId>org.apache.httpcomponents</groupId>
<artifactId>httpclient</artifactId>
<version>4.5.2</version>
</dependency>
<!-- https://mvnrepository.com/artifact/org.slf4j/slf4j-log4j12 -->
<dependency>
<groupId>org.slf4j</groupId>
<artifactId>slf4j-log4j12</artifactId>
<version>1.7.25</version>
<scope>test</scope>
</dependency>
项目环境idea,jdk1.8,maven自带
效果截图,我这爬取的是黑工商的官网:
注:本程序只供学习使用!