こんにちは、html ページ (プリンターの静的ページ) から 4 つの値を選択しようとしています。いくつかの試みがすべて失敗しましたが、皆さんが私を助けてくれますか?
穴のページ = http://pastebin.com/e7eKAV0x
ストレスのコード:
<tr>
<td>
Yellow Cartridge
<br>
Order 305A (CE412A)
</td>
<td class="alignRight valignTop">
40%
†
</td>
</tr>
(ページを検査/確認してください) 4 つの異なるフィールド (プリンターの色) から 40% の値が必要です。色が抜けた時 --
私の最後の試み:
public void buildCartigesAndValue(String ipString) throws IOException {
LOGGER.log(Level.INFO, "Starting mining over IP " + ipString);
String context = getUrlSource(ipString);
System.out.println(context);
urlPart = "/info_colorUsageJobLog.html?tab=Status&menu=ColorUsageLog";
if (context.contains("HP Color LaserJet CP2025dn") || context.contains("HP Color LaserJet CM2320nf MFP")) {
LOGGER.log(Level.INFO, "PRINTER TYPE ======= HP Color LaserJet CP2025dn");
regexColorContent = "\\w+\\W{1}Cartridge (?<!Printer)";
regexTagContent = "(<td{1}>)([^<]{1}[^.{20}][^ ].*?)(</td>)";
}
else if (context.contains("HP LaserJet 400 color M451dw")){
LOGGER.log(Level.INFO, "PRINTER TYPE ======= HP LaserJet 400 color M451dw");
regexColorContent = "\\w+\\W{1}Cartridge (?<!Printer)";
regexTagContent = "Cartridge.{50}";
}
List<Integer> vals = findCartegisProcentr(context);
List<String> colors = findCartigesColor(context);
for (int i = 0; i < colors.size(); i++) {
if (colors.get(i).contains("Printer")) {
continue;
}
System.out.println(colors.get(i));
addNewColorVal(colors.get(i), vals.get(i));
}
LOGGER.log(Level.INFO, "Stopping sucessfully ---- MAP ---- " + this.colorAmountMap.toString());
}
public List<Integer> findCartegisProcentr(String context) {
List<Integer> vals = new ArrayList<>();
regexValContent = "\\d{2}|-{2}"; // FOR PARTICULAR THE VALUES
Pattern patternTagContent = Pattern.compile(regexTagContent);
Matcher matcherTagContent = patternTagContent.matcher(context);
Pattern patternValContent = Pattern.compile(regexValContent);
while (matcherTagContent.find()) {
Matcher matcherValContent = patternValContent
.matcher(matcherTagContent.group());
matcherValContent.find();
try {
vals.add(Integer.parseInt(matcherValContent.group()));
} catch (Exception e) {
vals.add(0);
}
}
return vals;
}