1
我在此工作了很長時間,並嘗試了所有類型的命名空間解決方案。但是,我目前的腳本不是打印所需的字符串,而是整個html轉儲。有誰知道如何解決這個問題?etree&xpath返回整個html而不是文本
from lxml.html import parse
from lxml import etree
import requests
r = requests.get('https://berlin.kauperts.de/Strassen/Aachener-Strasse-10713-Berlin.html')
tree = etree.parse(r.text)
NSMAP = {'mw':'http://www.w3.org/1999/xhtml/'}
Name2 = tree.xpath('//{http://www.w3.org/1999/xhtml}html/body/div[7]/div/div/div/table/tbody/tr/td[2]/a')
Name3 = tree.find("//html/body/div[7]/div/div/div/table/tbody/tr/td[2]/a")
print(Name2, Name3)
非常感謝您的幫助,而且這裏需要更簡單的表達方式。但是,使用這段代碼,我得到以下錯誤:'File「test.py」,第11行,在 tree = etree.parse(r.text)'...'IOError:我沒有在stackoverflow上找到任何類似的錯誤。 –
fahrradlaus
不知道。對我來說,這個錯誤在'tree = etree.parse(r.text)',這是我甚至沒有觸及的一行。我的更改只位於最後兩行,因此您應該在自己的代碼中看到相同的錯誤。 – Tomalak
之前,它會傾倒整個html文件,因爲我在上面的代碼中有以下幾行'import sys reload(sys) sys.setdefaultencoding('iso-8859-1')'strange ...可能是錯的那條線?我認爲有必要將html轉換爲字符串以解析後...如果我把'tree = etree.parse(r)'我得到'TypeError:無法從'響應'中解析' – fahrradlaus