使用 HtmlUnit 抓取整行

Scraping entire lines with HtmlUnit

我正在努力从网页中抓取整个选项行

<select id="Code_9" name="value[2].valueType" onchange="changeMe(this);">
  <option value="0">Identifier_1</option>
  <option value="1">Identifier_2</option>
  <option value="2">Identifier_3</option>
  <option value="3" selected="">Identifier_4</option>
</select>

当运行这段代码:

List <HtmlDivision> selectedValue = htmlPage.getByXPath("//*[@id='Code_9']/option");
        for (int i = 0; i < selectedValue.size(); i++)
        {
            System.out.println(selectedValue.get(i));
        }

它returns这个:

HtmlOption[<option value="0">]
HtmlOption[<option value="1">]
HtmlOption[<option value="2">]
HtmlOption[<option value="3" selected="">]

但我还需要“标识符”。或者我可以获得“select”中所有内容的直接副本并进行一些字符串解析。

注意抓取这个的处理时间应该越短越好。

编辑 (07.01.22):HTMLDivision 应该改为 HTMLElement。这样@RBRi 的答案是正确的,使用 selectedValue.get(i).asXml() 将输出:

<option value="0">
  Identifier_1
</option>

<option value="1">
  Identifier_2
</option>

<option value="2">
  Identifier_3
</option>

<option value="3" selected="">
  Identifier_4
</option>

您可以使用

selectedValue.get(i).asXml()

如果你喜欢把它作为字符串。

否则使用 getChildNodes() 或 getChildren()。