我想使用Jsoup和Java访问本网站上的表值:
http://mmcd.nmrfam.wisc.edu/test/cqsearch.py?cqid=cq_12391
例如,我想访问" 5-(3,4-二氯苯基)-6-甲基吡啶-2,4-二胺" - >在表值"名称"。
之后我对这种性质的其他问题的解决方案包括查找标头标签,然后找到" td"的值。在th标签下。但是,由于表格中的所有内容都有一个" td"标签。
有没有人有任何想法如何访问前面描述的表的某些值?提前致谢
答案 0 :(得分:0)
您可以使用Selector documentation中提到的CSS描述符指定要选择的元素,如:
:eq(n)
其中n
是基于0的索引同级索引,:has(selector)
:contains(text)
:matches(regex)
如果您的问题描述的话可以
width="80%"
属性tr
)
td:eq(0)
)包含文本Name:
字符串。 :eq(1)
)样本:
String url = "http://mmcd.nmrfam.wisc.edu/test/cqsearch.py?cqid=cq_12391";
Document doc = Jsoup.connect(url).get();
Elements select = doc.select("table[width=80%] tr:has(td:matchesOwn(^Name:$)) td:eq(1)");
String name = select.text();
System.out.println(name);
输出:5-(3,4-DICHLOROPHENYL)-6-METHYLPYRIMIDINE-2,4-DIAMINE
我使用td:matchesOwn(^Name:$)
来确保Name:
是td中的整个文本(因为在正则表达式中^
表示文本的开头和$
文本的结尾)。这样我们就可以删除包含surname:
等文本的单元格(如果有的话)。