2012-05-16 32 views
1

發生'分段錯誤',scrapy停止運行。 經過檢查網站的網址,我發現它應該屬於一個標籤 HREF屬性但沒有價值。像這樣:「<a href> dummy </a>」 我懷疑這是由lxml .so lib引起的,該如何處理?在 至少防止蜘蛛停止問題。 我的代碼片段:Scrapy的HTMLXPathSelector在解析HTML頁面時會導致「分段錯誤」

hxs = HtmlXPathSelector(response) 
sites = hxs.select('//a') 
for site in sites: 
    list_title= site.select('text()').extract() 
    list_link = site.select('./@href').extract() #????(crash here when parsing <a href></a>) 

BTW,刮該網站是 'http://mil.news.sohu.com/' 運行環境:scrapy 0.15.1和Python 2.7.3,安裝前openssl0 .12,因爲scrapy的openssl0.13默認值沒有成功安裝。

非常感謝 亞倫

+0

將爲該HREF正確的XPath或許是'@ href'? –

+0

@href和./@href都適用於格式良好的HTML。你可以在你的機器上測試這個嗎? –

回答

1

我已經解決了這個問題。這是由scrapy默認安裝的libxml2版本2.6.26引起的。將libxml2更新爲2.7.4,解決了。

0

他們要麼重新錯誤或必須有導致此另一件事:

me:~$ scrapy version -v 
Scrapy : 0.16.3 
lxml : 3.0.2.0 
libxml2 : 2.7.8 
Twisted : 12.0.0