以下是一个Java爬虫读取该网站所有URL的示例代码:

import java.io.BufferedReader;
import java.io.InputStreamReader;
import java.net.URL;
import java.util.ArrayList;
import java.util.List;
import java.util.regex.Matcher;
import java.util.regex.Pattern;

public class WebCrawler {
    public static void main(String[] args) {
        String urlToCrawl = 'http://example.com'; // 替换为要爬取的网站URL
        List<String> foundUrls = crawl(urlToCrawl);
        
        // 输出所有找到的URL
        for (String url : foundUrls) {
            System.out.println(url);
        }
    }
    
    public static List<String> crawl(String urlToCrawl) {
        List<String> foundUrls = new ArrayList<>();
        
        try {
            URL url = new URL(urlToCrawl);
            BufferedReader reader = new BufferedReader(new InputStreamReader(url.openStream()));
            String line;
            StringBuilder content = new StringBuilder();
            
            while ((line = reader.readLine()) != null) {
                content.append(line);
            }
            
            reader.close();
            
            // 使用正则表达式提取所有的URL
            Pattern pattern = Pattern.compile('String url="/\d+_\d+/"');
            Matcher matcher = pattern.matcher(content.toString());
            
            while (matcher.find()) {
                String foundUrl = matcher.group().replace('String url="', '').replace('"', '');
                foundUrls.add(foundUrl);
            }
        } catch (Exception e) {
            e.printStackTrace();
        }
        
        return foundUrls;
    }
}

在示例代码中,我们首先定义了要爬取的网站URL(urlToCrawl),然后调用crawl方法进行爬取。crawl方法中,我们使用URL和BufferedReader读取网站的内容,并使用正则表达式提取所有符合要求的URL(String url="/\d+_\d+/")。最后,将找到的URL添加到foundUrls列表中,并返回结果。

请注意,这只是一个简单的示例代码,实际的爬虫可能需要处理更多的异常情况和优化。另外,爬取网站的内容可能受到网站的限制或法律法规的限制,需要确保自己的行为符合法律法规。


原文地址: http://www.cveoy.top/t/topic/o5oV 著作权归作者所有。请勿转载和采集!

免费AI点我,无需注册和登录