指针原来是套娃的


私信TA

用户名:uq_92467646842

访问量:44209

签 名:

数学改变科学,科学改变世界

等  级
排  名 10
经  验 25292
参赛次数 49
文章发表 128
年  龄 0
在职情况 学生
学  校
专  业 物联网工程

  自我简介:

QQ:2830671713

这几天刚接触爬虫,好奇看了下本站的前端代码,发现是静态网页,直接使用jsoup就可以。

先在pom导入依赖

<dependency>
    <groupId>org.jsoup</groupId>
    <artifactId>jsoup</artifactId>
    <version>1.13.1</version>
</dependency>

然后检查网站链接:

https://www.dotcpp.com/oj/problem1000.html

https://www.dotcpp.com/oj/problem1001.html

每一题的链接只有题号的差别,然后再看1000这道题的网页代码

image.png


题目在这个div下

image.png

题目描述在这个里面,通过识别它们的class,就能定位到它们


代码:

import org.jsoup.Connection;
import org.jsoup.Jsoup;
import org.jsoup.nodes.Document;
import org.jsoup.nodes.Element;

import java.io.*;
import java.nio.charset.StandardCharsets;

public class GetDotCpp {
    public static void main(String[] args) throws IOException {

        //在写入的时候会按照路径自动创建文件
        FileWriter writer = new FileWriter("D://题目.txt", true);//默认为覆盖,改为true追加模式
        for (int i = 1000; i <= 3131; i++) {
            String url = "https://www.dotcpp.com/oj/problem" + i + ".html";
            String str = "";
            // 与要爬取数据的页面建立连接
            
            Connection connection = Jsoup.connect(url);
            Document document = connection.get();
            // 找到第一个class为head_box_text_w的文档对象,获取题目标题
            Element elementTitle = document.selectFirst("[class=head_box_text_w]");
            if(elementTitle!=null){
                str += elementTitle.text() + "\n";
            }
            // panel_prob_body,获取题目内容
            Element elementText = document.selectFirst("[class=panel_prob_body]");
            if(elementText!=null){
                str += elementText.text() + "\n\n";
            }
            System.out.println(i);
            writer.write(str);
            writer.flush();
        }
        writer.close();

    }
}

有的题目描述是图片形式,这里只读取文本。

image.png

等待爬取结束,在d盘下就有了一个txt文件,这里面就是所有题目的题目描述了,复制到word里面查看,大概三十五万字。

image.png


image.png


 

0.0分

156 人评分

看不懂代码?想转换其他语言的代码? 或者想问其他问题? 试试问问AI编程助手,随时响应你的问题:

编程语言转换

万能编程问答  

代码解释器

代码纠错

SQL生成与解释

  评论区