我正在解析以下頁面:http://www.amazon.de/product-reviews/B004K1K172 使用基於lxml的etree進行解析。包含整個頁面內容使用utf-16解析LXML Xpath失敗
代碼
內容變量:
myparser = etree.HTMLParser(encoding="utf-16") #As characters are beyond utf-8
tree = etree.HTML(content,parser = myparser)
review = tree.xpath(".//*[@id='productReviews']/tr/td[1]/div[1]/text()")
這是返回一個空列表。
但是,當我改變代碼:
myparser = etree.HTMLParser(encoding="utf-8") #Neglecting some reviews having ascii character above utf-8
tree = etree.HTML(content,parser = myparser)
review = tree.xpath(".//*[@id='productReviews']/tr/td[1]/div[1]/text()")
現在我用同樣的XPath得到正確的數據。 但大多數評論被拒絕。 那麼這是基於lxml的xpath或我的xpath實現的問題?
我該如何解析utf-16編碼的上述頁面?
我認爲你應該使用'tree.xpath(」 .//*[@ ID = 'productReviews']/TR/TD [1]/DIV /文()「)'。此外,http://www.amazon.de/product-reviews/B004K1K172在ISO-8859-15中編碼,但不在utf-16中編碼。 – nymk 2013-03-05 11:58:42
xpath只用於選擇第一個review.Code通過更改最後一個div [n] value來繼續循環查看評論。我將使用ISO-8859-15編碼檢查lxml xpath。 – Kratos85 2013-03-05 14:15:27
@ nymk.Thanks的建議。現在我能夠使用ISO-8859-15編碼成功解析頁面。 – Kratos85 2013-03-06 08:40:49