【问题标题】:HtmlUnit get element by class name containing string [duplicate]HtmlUnit通过包含字符串的类名获取元素[重复]
【发布时间】:2018-01-21 09:21:06
【问题描述】:

我想在 HtmlPage 中查找任何具有包含单词“日期”的类的元素。

即我想匹配以下任何一项:

<div class = 'date'> August 13 2017 </div>
<span class = 'pubDate'> August 12 2017 </div>
<div class = 'datePublished'> August 10 2017 </div>

为了完全匹配“日期”,我使用以下内容:

HtmlPage page;
List<HtmlDivision> date = page.getByXPath("//div[@class='date']");
System.out.println(date.get(0));

哪个工作正常。

但是,我该如何更改它(或者我应该使用什么)才能匹配任何类名包含单词 date(不区分大小写)的元素?

【问题讨论】:

    标签: java url web-scraping htmlunit


    【解决方案1】:

    尝试在 XPath 下匹配所有 div 元素与属性 class 包含 "date"

    //div[contains(@class, 'date')]
    

    【讨论】:

    • 但我也希望它不区分大小写(以匹配 'pubDate' 等)这不适用于大写 'date'
    • 在这种情况下你可以试试//div[matches(@class, 'date', 'i')],或者,如果你的工具不支持matches()//div[contains(@class, 'date') or contains(@class, 'Date')]
    • 好的,但我如何匹配任何元素?不只是 div ?像任何 div 或 span 或任何具有包含 date 类的元素?
    • //*[matches(@class, 'date', 'i')]
    猜你喜欢
    • 2016-09-08
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    • 2019-01-12
    • 1970-01-01
    • 2012-05-04
    • 1970-01-01
    相关资源
    最近更新 更多