urllib
およびlxml.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でWeb'http: //v.163.com/special/visualizingdata/ 'を開くと、firebugを使用したhtml構造を確認できます。