在网站中搜索特定标签

时间:2019-07-01 13:11:09

标签: java html parsing search

有一项任务,可以在该站点找到一定的优势。如何用JAVA完成?

更具体地说,要求使用以下类型的钢材-g X120Mn12 / 1.3401,直径:130mm,数量:500 kg,此位置位于以下地址-{{3} }质量/特殊-quality / 1.3401-a128-x120mn12。

这是给您的变量列表。分数最高,最能回应客户的要求。

任务是,对于结构不同的不同站点,搜索应或多或少具有普遍性。我创建具有PDF的站点的类似任务,如下所示,借助txt中的pdfbox解析PDF文件,然后查找与输入参数(在不同站点的金属特征(..不同的产品?)不同)。

也就是说,我搜索String []和PDF文件的链接,结果为List c变量的形式,该变量包含与传递的数组String的构造中的匹配项数[]得分最高的字符串分别最能响应客户请求。像html页面这样的人可以提供建议,并且使用html链接到特定页面将不起作用,您只能提供指向主机(站点地址)的链接,因为站点的结构可以不同。预先谢谢你!

这是我的PDF搜索器代码:

public class PdfParserService {

private String path;
private static final String pathToResource = "..\\websitestillparser\\src\\main\\resources\\";
private static String pdfFileName;
private static String txtFileName;
private static String host;

@Autowired
private PdfParser parser;

public List<ResultLine> getResult(RequestFoPdfArguments argument) {
    this.setPathForFile(argument.getPathForLink());
    this.setPdfFileName(argument.getPathForLink());
    this.setTxtFileName(argument.getPathForLink());
    if (parser.downloadFileFRomUrl(argument.getPathForLink(), path, pdfFileName)) {
        parser.generateTxtFromPDF(path + txtFileName, path + pdfFileName);
    }
    List<ResultLine> result = parser.setListWithSearchWords(host, path + txtFileName, argument.getArgs());
    result = result.stream().filter(s -> s.getCountEquals() > 1).collect(Collectors.toList());
    result.forEach(System.out::println);
    return result;
}

public String setPathForFile(String url) {
    try {
        URL partOfurl = new URL(url);
        if (!Files.exists(Paths.get(pathToResource + partOfurl.getHost()))) {
            Files.createDirectories(Paths.get(pathToResource + partOfurl.getHost()));
        }
        path = pathToResource + partOfurl.getHost() + "\\";
    } catch (IOException e) {
        log.error(e.getMessage());
        e.printStackTrace();
    }
    return path;
}

public String setPdfFileName(String url) {
    try {
        URL partOfurl = new URL(url);
        pdfFileName = FilenameUtils.getName(partOfurl.getPath());
        host = partOfurl.getHost();
    } catch (IOException e) {
        log.error(e.getMessage());
        e.printStackTrace();
    }
    return pdfFileName;
}

public String setTxtFileName(String url) {
    try {
        URL partOfurl = new URL(url);
        txtFileName = FilenameUtils.getName(partOfurl.getPath());
        txtFileName = txtFileName.replace("pdf", "txt");
    } catch (IOException e) {
        log.error(e.getMessage());
        e.printStackTrace();
    }
    return txtFileName;
}

}

0 个答案:

没有答案