2012-10-16 46 views
0

我使用某人的代碼來創建一個過濾器。python filter lxml

import urllib2 
import lxml.html as lh 

req = urllib2.Request("http://www.ip-adress.com/ip_tracer/157.123.22.11", headers={'User-Agent' : "Magic Browser"}) 
html = urllib2.urlopen(req).read() 
doc=lh.fromstring(html) 
print ''.join(doc.xpath('.//*[@class="odd"]')[-1].text_content().split()) 

它會輸出組織:ZenithDataSystems。 但是當我運行它,它顯示了一些錯誤

Traceback (most recent call last): 
File "ext.py", line 2, in ? 
import lxml.html as lh 
File "/usr/lib64/python2.4/site-packages/lxml/html/__init__.py", line 42, in ? 
from lxml import etree 
ImportError: /usr/lib64/python2.4/site-packages/lxml/etree.so: undefined symbol:  xmlMemDisplayLast 

我之前沒有使用LXML。我的python版本是2.4.3,操作系統是CentOS release 5.5 如何解決它。 當我更新版本的lxml的,它顯示

 Traceback (most recent call last): 
     File "ext.py", line 3, in ? 
     req= urllib2.Requset("http:// www.ip-address.com/ip_tracer/157.123.22.11", headers={'User-Agent' : "Magic Browser"}) 
     AttributeError: 'module' object has no attribute 'Requset' 

感謝,

+0

你怎麼安裝LXML修正錯誤?你使用的Python版本(2.4)是相當古老的。 –

+0

也許你可以升級你的LXML首先通過 PIP安裝--upgrade LXML – waitingkuo

+0

@waitingkuo,當我升級LXML,它顯示回溯(最後最近一次調用): 文件「ext.py」,3號線,在? req = urllib2.Requset(「http:// www.ip-address.com/ip_tracer/157.123.22.11」,headers = {'User-Agent':「Magic Browser」}) AttributeError:'module'object has沒有屬性'Requset' ? – AntiGMO

回答

0

這是一個bug。你需要升級到lxml 3.0.1(或降級到lxml 2.3.6)。

pip install -U lxml==3.0.1 

lxml 3.0.1GH#71: Failure to work with libxml2 2.6.x.

+0

當我升級lxml時,它顯示Traceback(最近呼叫的最後一個): 文件「ext.py」,第3行,在? req = urllib2.Requset(「http:// www.ip-address.com/ip_tracer/157.123.22.11」,headers = {'User-Agent':「Magic Browser」}) AttributeError:'module'object has沒有屬性'Requset' – AntiGMO

+1

你犯了一個錯字。仔細看看:「Requset」 –