欢迎您访问程序员文章站本站旨在为大家提供分享程序员计算机编程知识!
您现在的位置是: 首页  >  IT编程

我用java爬虫爬了一个图片网站

程序员文章站 2023-09-20 12:41:24
我用java爬虫爬了一个图片网站 最近想建立个网站,不想搞技术博客之类的网站了,因为像博客园还有CSDN这种足够了。平时的问题也都是这些记录一下就够了。那搞个什么网站好玩呢? 看到一个图片网站还不错,里面好多图片(当然有xxx图片了....)哈哈,其实就是闲的,同时也介绍一下java爬虫的相关用法把 ......

我用java爬虫爬了一个图片网站

最近想建立个网站,不想搞技术博客之类的网站了,因为像博客园还有csdn这种足够了。平时的问题也都是这些记录一下就够了。那搞个什么网站好玩呢?

看到一个图片网站还不错,里面好多图片(当然有xxx图片了....)哈哈,其实就是闲的,同时也介绍一下java爬虫的相关用法把。

1、首先呢,爬虫应该就是两种了,一种是动态的接口请求返回的数据,这种json解析或者其他解析一下获取自己需要的数据就可以了。

2、还有就是静态html的网页之类的。这种就需要解析html dom节点的数据。其实通俗点就是类似于 jquery 选择器,html数据解析成dom节点的数据,java里面有现成的类库

 

看下我根据爬取的图片生成的网站效果把(代码近期准备开源,随便搞搞)

原网站: 

生成的网站:

说明一下,这个博客网站,是修改的 https://github.com/winterchens/my-site

我用java爬虫爬了一个图片网站

 

 

  

需要的maven依赖,版本号自己去maven搜把

    <!--网页爬取-->
        <!--  http   -->
        <dependency>
            <groupid>org.apache.httpcomponents</groupid>
            <artifactid>httpclient</artifactid>
         
        </dependency>

        <dependency>
            <groupid>org.jsoup</groupid>
            <artifactid>jsoup</artifactid>

        </dependency>

 

接着介绍一下用法,

① 比如:爬取一个图片静态页面: https://www.yeitu.com/meinv/xinggan/20180919_14722.html

  我们正常用jquery获取这个静态页面的标题(需要自己看dom节点的结构,用选择器获取)

我用java爬虫爬了一个图片网站

 

 

 ② 接着,我们怎么用代码爬取这个呢?

用httpclient工具类,写一个get请求方法,最终返回一个string的html网页内容

       
       string url="https://www.yeitu.com/meinv/xinggan/20180919_14722.html";
       httpget get = new httpget(url);// 设置参数 builder customreqconf = requestconfig.custom(); customreqconf.setconnecttimeout(conntimeout); customreqconf.setsockettimeout(sockettimeout); customreqconf.setconnectionrequesttimeout(requesttimeout); get.setconfig(customreqconf.build()); get.addheader("connection", "close"); httpresponse res; // 执行 http 请求. if (url.startswith("https")) { // 执行 https 请求. client = createsslinsecureclient(); res = client.execute(get); } else { // 执行 http 请求. client = httpclientutil.client; res = client.execute(get); } return entityutils.tostring(res.getentity(), charset);

③、接着把 html内容转换一下

 document documentinner = jsoup.parse(htmlinner);

//这个就是图片中的jquery的选择器 //$(".img_box").children("a").children("img").attr("alt");
//下面就是对应jsoup框架写法
string firstalt = documentinner.select(".img_box").select("a").select("img").attr("alt");

 

总结一下,就是把jquery对应选择器的写法,写成jsoup框架的写法转换一下下。其实也没转换什么东西,自己操作一下就比较清晰了