Hyperlink HTMLUnit按类名收集所有链接

Hyperlink HTMLUnit按类名收集所有链接,hyperlink,htmlunit,scrape,Hyperlink,Htmlunit,Scrape,我想在一个特定的类名下刮取/收集页面上的所有链接 e、 g.HTML 农业(92) 我一直在玩弄以下代码: List<?> links = page.getByXPath("//div[@class='generate']/@href"); OR List<?> links = page.getAnchors(); System.out.println(links); List links=page.getByXPath(“//div[@cl

我想在一个特定的类名下刮取/收集页面上的所有链接

e、 g.HTML 农业(92)


我一直在玩弄以下代码:

   List<?> links = page.getByXPath("//div[@class='generate']/@href");

   OR
 List<?> links = page.getAnchors();
    System.out.println(links);
List links=page.getByXPath(“//div[@class='generate']/@href”);
或
列表链接=page.getAnchors();
System.out.println(链接);

getByXPath选项返回null,另一个选项获取所有锚点。有没有办法将链接抓取到列表中?

这是一个糟糕的XPath,但我在缩小范围时遇到了问题。(如有必要,我可以研究更好的XPath,但就目前而言,这一方法有效:

List<?> links = page.getByXPath("/html/body/div[2]/div[2]/table/tbody/tr/td/table/tbody/tr[7]/td/table/tbody/tr/td/div/table/tbody/tr[2]/td/div/table/tbody/tr/td/table/tbody/tr/td/ul/li/a/@href").asList()
List links=page.getByXPath(“/html/body/div[2]/div[2]/table/tbody/tr/td/table/tbody/tr[7]/td/table/tbody/tr/td/div/table/tbody/tr[2]/td/div/tr/td/table/tbody/tr/td/ul/li/a/@href”)。asList()
我不太清楚为什么它不允许我们用这个类名来获取它


当你有机会的时候,让我知道它是如何为你工作的

是否有任何方法可以从一个页面中刮取所有链接?我需要刮取产品,并相信首先抓取所有产品url,然后点击每个url是最好的方法。url是“想要所有类别链接”。我可以使用AnchorByText并输入所有链接文本的内容我已经尝试过上面的getByXPath并返回null,我想这意味着我的路径错了??我测试的是:List links=page.getByXPath(//div[@class='generate']/href”);List links=page.getByXPath(//html/body/div[2]/div[2]/table/tbody/tr/td/table/tbody/tr[7]/td/table/tbody/tr/td/div/table/tbody/tr[2]/td/div/table/tbody/tr/td/table/tbody/tr/td/ul/li/a[@class='generate']/href];@Doug Stewart我已经用一个有效的XPath更新了我的答案。(我觉得XPath可能更好,因为它应该能够被类抓住)很抱歉我离开后耽搁了时间。是的,这很有效,非常感谢。我在最后删除了.asList(),因为我没有声明它。通常这会将结果放入列表中吗?目前我得到的结果如下:[DomAttr][name=href value=,我只是想要这些链接,因为下一步是滚动单击每个链接。@Doug Stewart尝试使用
.asText()
links.textContent
。其中一个肯定会起作用,让我知道这是怎么回事。我更喜欢使用Groovy来完成这样的小任务。在Groovy中,下一步很简单:
links.each{//do task here}
很抱歉,我没有使用Groovy,老实说,我对Java很陌生。我尝试过.asText和textcontent,但作为一个列表,它不会这样做,bugger:(
List<?> links = page.getByXPath("/html/body/div[2]/div[2]/table/tbody/tr/td/table/tbody/tr[7]/td/table/tbody/tr/td/div/table/tbody/tr[2]/td/div/table/tbody/tr/td/table/tbody/tr/td/ul/li/a/@href").asList()