吾爱破解 - 52pojie.cn

 找回密码
 注册[Register]

QQ登录

只需一步,快速开始

查看: 3778|回复: 13
收起左侧

[Java 转载] java爬虫

  [复制链接]
猫颜 发表于 2020-3-31 20:53
写了一福利站的爬虫
[Java] 纯文本查看 复制代码
package com.maoyan.test;

import org.jsoup.Jsoup;
import org.jsoup.nodes.Document;
import org.jsoup.nodes.Element;
import org.jsoup.select.Elements;

import java.io.*;
import java.net.HttpURLConnection;
import java.net.URL;
import java.util.UUID;
import java.util.regex.Matcher;
import java.util.regex.Pattern;

/**
 * [url=home.php?mod=space&uid=686208]@AuThor[/url] Maoyan
 * [url=home.php?mod=space&uid=264116]@data[/url] 2020/3/31 12:30
 * [url=home.php?mod=space&uid=1248337]@version[/url] 1.0.0
 */
public class SpyderTest {
    private static HttpURLConnection conn = null;
    private static InputStream inputStream = null;
    private static BufferedInputStream bufferedInputStream = null;
    private static FileOutputStream fileOutputStream = null;
    //利用预编译正则表达式提高效率
    private static Pattern pattern = Pattern.compile("/images/\\w+");
    public static void main(String[] args) throws IOException {
            for (int i = 1;i<=5;i++) {
                //创建url
                URL url = new URL("https://gank.io/special/Girl/page/"+i);
                //创建doc对象
                Document document = Jsoup.parse(url, 20 * 1000);
                //获取img标签
                Elements imgs = document.getElementsByTag("title");
                Elements elements = document.select("a[title][target][style]");
                for (Element e :
                        elements) {
                    String image = "第"+i+"页:"+"https://gank.io" + e.attr("style");
                    //正则表达式
                    Matcher matcher = pattern.matcher(image);
                    while (matcher.find()) {
                        System.out.println("第"+i+"页:"+"https://gank.io" +matcher.group());
                        //这里可以写成工具类
                        File file=new File("D:\\下载图片的文件夹");
                        if (!file.isDirectory()&&!file.exists()){
                            //如果文件夹不存在则创建一个文件夹
                            file.mkdirs();
                        }
                        //生成一个唯一的标记来当作图片名称
                        String filename = UUID.randomUUID().toString();
                        fileOutputStream = new FileOutputStream(file+"\\"+filename+".jpeg");
                        //建立连接
                        URL imageurl = new URL("https://gank.io" +matcher.group());
                        conn = (HttpURLConnection) imageurl.openConnection();
                        //使用GET方法
                        conn.setRequestMethod("GET");
                        //连接指定的资源
                        conn.connect();
                        //获取输入流
                        inputStream = conn.getInputStream();
                        //新建buffer缓冲流包装输入流
                        bufferedInputStream = new BufferedInputStream(inputStream);
                        //创建大小为1k的"水桶"
                        byte[] bytes = new byte[1024];
                        //用于保存实际读取的字节数
                        int hasRead = 0;
                        //循环取水
                        System.out.println("开始下载第"+i+"页的图片");
                        while ((hasRead = inputStream.read(bytes))>0){
                            fileOutputStream.write(bytes,0,hasRead);
                        }
                        System.out.println("第"+i+"页的图片下载完成");

                        //释放资源
                        fileOutputStream.close();
                        bufferedInputStream.close();
                        inputStream.close();
                    }

                }

            }
    }
}

免费评分

参与人数 3吾爱币 +3 热心值 +3 收起 理由
15235109295 + 1 + 1 我很赞同!
卖菜小贩邪魅 + 2 + 1 给你点个赞!!
神鹰黑手哥 + 1 我刚学这个java 还不知道怎么用

查看全部评分

本帖被以下淘专辑推荐:

发帖前要善用论坛搜索功能,那里可能会有你要找的答案或者已经有人发布过相同内容了,请勿重复发帖。

 楼主| 猫颜 发表于 2020-3-31 21:01
忘记说了,Maven要导入jsoup的依赖
<dependency>
            <groupId>org.jsoup</groupId>
            <artifactId>jsoup</artifactId>
            <version>1.8.1</version>
        </dependency>
好像中央仓库的jsoup有毛病,所以我是下载jar包放的本地仓库的
 楼主| 猫颜 发表于 2020-4-1 07:48

额,,就创建maven项目,导入依赖,复制代码即可,或者创建一个普通项目导入jsoup的jar包也行
萧筱小 发表于 2020-3-31 21:28
 楼主| 猫颜 发表于 2020-4-1 10:32
萧筱小 发表于 2020-3-31 21:28
哈哈哈这段代码有点东西,学到了

哈哈哈里面有些没啥用的代码忘删了,不过影响应该不大
头像被屏蔽
卖菜小贩邪魅 发表于 2020-4-3 16:45
提示: 作者被禁止或删除 内容自动屏蔽
 楼主| 猫颜 发表于 2020-4-5 17:40
卖菜小贩邪魅 发表于 2020-4-3 16:45
图片太少了不够看!!

但是这些都是精品图片,比其他的那些图片好看多了
25po0 发表于 2020-4-5 18:04
楼主 这代码用什么软件运行能教下吗?
 楼主| 猫颜 发表于 2020-4-5 18:06
25po0 发表于 2020-4-5 18:04
楼主 这代码用什么软件运行能教下吗?

java代码啊,用java的ide就ok啦
independence 发表于 2020-4-8 16:20
python的爬虫和Java的爬虫有什么不同呢
您需要登录后才可以回帖 登录 | 注册[Register]

本版积分规则

返回列表

RSS订阅|小黑屋|处罚记录|联系我们|吾爱破解 - LCG - LSG ( 京ICP备16042023号 | 京公网安备 11010502030087号 )

GMT+8, 2024-11-26 03:21

Powered by Discuz!

Copyright © 2001-2020, Tencent Cloud.

快速回复 返回顶部 返回列表