我想使用HtmlUnit和Java访问此网站上的表值:
http://www.lipidmaps.org/data/chemdb_lm_text_ontology.php?ABBREV=PA(40:10)
例如,我希望能够点击" LMGP10010453"在lm_id下
我对这种性质的其他问题的解决方案包括寻找元素的xpath或id,但在这种情况下,因为我需要访问许多其他网站,其中lm_id不是这一个,我可以& #39; t只是对xpath链接进行硬编码。例如,在此链接上,lm_id是不同的:http://www.lipidmaps.org/data/chemdb_lm_text_ontology.php?ABBREV=PI(27:0)
有没有人有任何想法如何访问表格的某些元素(最好只是最左上角的元素)并点击其中的链接?
答案 0 :(得分:0)
要开始,请尝试通过ID获取表格。 (或者你可以通过XPath获取表格。)
WebClient webClient = new WebClient();
HtmlPage page = webClient.getPage("http://www.lipidmaps.org/data/chemdb_lm_text_ontology.php?ABBREV=PA(40:10)");
HtmlTable table = page.getHtmlElementById("table id");
然后,您可以使用table.getCellAt()
访问左上角的元素HtmlTableCell upperLeft = (HtmlTableCell) table.getCellAt(2,1);
您可以从表格元素中获取链接,如下所示:
List<HtmlLink> links = upperLeft.getHtmlElementsByTagName("a");
String href = links.get(0).getHrefAttribute();
以上代码将为您提供您尝试单击的链接的href。
最后,您可以从找到的href中获取锚点,然后单击它。
HtmlAnchor anchor = page.getAnchorByHref(href);
page = anchor.click();
您可能需要调整我的示例代码以匹配您正在使用的表,但它通常应该可以正常工作。
希望这有帮助!