我想提取td中类为u-ctitle的所有链接。你知道吗
import os
import urllib
import lxml.html
down='http://v.163.com/special/opencourse/bianchengdaolun.html'
file=urllib.urlopen(down).read()
root=lxml.html.document_fromstring(file)
namelist=root.xpath('//td[@class="u-ctitle"]/a')
len(namelist)
输出是[],有那么多td的classis是“u-ctitle”,有了firebug你就可以得到,为什么提取不出来呢?你知道吗
把文件改成别的名字是没有用的。你知道吗
您的XPath是正确的。这个问题是无关的。你知道吗
如果检查HTML,您将看到以下元标记:
在这个代码中:
file
实际上是一个字节序列,因此从GBK编码的字节到Unicode字符串的解码在document_fromstring
方法中进行。你知道吗问题是,HTML编码实际上不是GBK,lxml错误地对其进行解码,导致数据丢失。你知道吗
经过反复试验,我们可以发现实际的编码是GB_18030。要使脚本正常工作,需要手动解码字节:
相关问题 更多 >
编程相关推荐