无法使用jsoup获取解析HTML页面的某种链接

时间:2012-07-01 20:47:09

标签: java html-parsing jsoup

鉴于此链接:

http://www.argenteam.net/movie/40749/American.Reunion.%282012%29

我正在尝试使用jsoup获取此页面上的所有链接:

<a href="ed2k://|file|American.Reunion.UNRATED.DVDRip.XviD.CD1-COCAIN.avi|734205866|C92C5188830C4F740C69521F67337A45|h=Z5F72XEXRGGXBCMSOR6NS3IBCTFIHQLL|/">CD1</a>

问题是我无法获得这种链接。 做了一些极端的事情我已经尝试了以下代码来获取页面上的所有链接,但同样,列表中没有“a [href]”。

doc = Jsoup.connect("http://www.******.net/movie/40749/American.Reunion.%282012%29").get();

Elements ed2k = doc.select("a[href]");
    for (Element emule:ed2k){
            String mula = emule.attr("href");
           }

如何以值“ed2k”开头的所有链接?他们在CSS“div.pmovie div.releases div.release-info div.section div.links div a”但我不知道是什么问题,他们对我的实现来说是“隐形的”。 如果您查看源代码HTML代码,它似乎并不奇怪,所有浏览器都可以很好地管理这种链接。那么,为什么我没有通过jsoup和css选择器解析它们呢?我需要使用节点和兄弟节点吗?

提前致谢。

使用解决方案进行最终修改:

该网站要求cookie显示我需要的链接,因为该cookie仅使用真实浏览器生成,Jsoup无法检索所有信息,并且它连接到真实页面的简化版本。在Jsoup连接中发送特定cookie解决了这个问题。 例如:

doc = Jsoup.connect(your url here).cookie(cookie name, cookie value).get();

1 个答案:

答案 0 :(得分:4)

我在您指定的网址源中没有看到任何此类链接。

通常,您可以使用以下属性值选择语法执行您要求的操作:

[attr^=valPrefix] 
elements with an attribute named "attr", and value starting with "valPrefix"    
Example: a[href^=http:]

(来自http://jsoup.org/apidocs/org/jsoup/select/Selector.html