发出更长的xpath表达式

时间:2013-02-22 00:09:56

标签: python xpath lxml

我遇到了urlliblxml.html模块的问题。

这是我的原始代码:

import urllib  
import lxml.html  
down='http://v.163.com/special/visualizingdata/'  
file=urllib.urlopen(down).read()  
root=lxml.html.document_fromstring(file)
xpath_str="//div[@class='down s-fc3 f-fl']/a"  
urllist=root.xpath(xpath_str)  
for url in urllist:  
  print url.get("href") 

运行时,它返回此输出:

http://mov.bn.netease.com/movieMP4/2012/12/A/7/S8H1TH9A7.mp4  
http://mov.bn.netease.com/movieMP4/2012/12/D/9/S8H1ULCD9.mp4  
http://mov.bn.netease.com/movieMP4/2012/12/4/P/S8H1UUH4P.mp4  
http://mov.bn.netease.com/movieMP4/2012/12/B/V/S8H1V8RBV.mp4  
http://mov.bn.netease.com/movieMP4/2012/12/6/E/S8H1VIF6E.mp4  
http://mov.bn.netease.com/movieMP4/2012/12/B/G/S8H1VQ2BG.mp4  

但是,当我更改行

xpath_str='//div[@class="down s-fc3 f-fl"]//a'

进入

xpath_str='//div[@class="col f-cb"]//div[@class="down s-fc3 f-fl"]//a'

也就是说,

urllist=root.xpath('//div[@class="col f-cb"]//div[@class="down s-fc3 f-fl"]//a')  

我没有收到任何输出。这段代码的缺陷是什么?
奇怪的是,较短的一个可以工作,越长越不能,它们具有相同的xpath结构!

在firefox中打开网页“http://v.163.com/special/visualizingdata/”,你可以看到带有firebug的html结构。

enter image description here

0 个答案:

没有答案