Python 如何使用lxml从xpath获取所有文本

Python 如何使用lxml从xpath获取所有文本,python,html,lxml,Python,Html,Lxml,我目前有以下的 u = 'https://www.cruiseplum.com/search#{%22numPax%22:2,%22geo%22:%22US%22,%22portsMatchAll%22:true,%22numOptionsShown%22:100,%22ppdIncludesTaxTips%22:true,%22uiVersion%22:%22split%22,%22sortTableByField%22:%22dd%22,%22sortTableOrderDesc%22:fa

我目前有以下的

u = 'https://www.cruiseplum.com/search#{%22numPax%22:2,%22geo%22:%22US%22,%22portsMatchAll%22:true,%22numOptionsShown%22:100,%22ppdIncludesTaxTips%22:true,%22uiVersion%22:%22split%22,%22sortTableByField%22:%22dd%22,%22sortTableOrderDesc%22:false,%22filter%22:null}'
driver = webdriver.Chrome()
driver.get(u)
driver.maximize_window()

time.sleep(.3)

driver.find_element_by_id('restoreSettingsYesEncl').click() # select 'yes' on the webpage to restore settings
time.sleep(7) # wait until the website downloads data so we get a return value

elem = driver.find_element_by_xpath("//*")
source_code = elem.get_attribute("innerHTML")

t = html.fromstring(source_code)    

for i in t.xpath('//td[@class="dc-table-column _2"]/text()'):
        print(i.strip())
这样做的目的是从代码中列出的网页中获取文本。我遇到的问题是,“路由”列中是否列出了两个端口。我目前拥有的代码将在两行单独打印

以下是我遇到问题的html示例:

<td class="dc-table-column _2">Fort Lauderdale <i class="fa fa-long-arrow-right"></i> Venice</td>
威尼斯劳德代尔堡

在本例中,它将在第1行打印“劳德代尔堡”,然后在第2行打印“威尼斯”。我想能够打印他们都在一行

这只是您打印结果方式的结果,正如所指出的

print()

替代打印方法

results = t.xpath('//td[@class="dc-table-column _2"]/text()')

print(" ".join([r.strip() for r in results]))
输出

Barcelona Martinique Martinique Doha Doha Fort Lauderdale Venice Miami Miami Miami Miami [...]
在本例中,它将在第1行打印“劳德代尔堡”,然后在第2行打印“威尼斯”。这不是因为您正在迭代元素并调用
print()
,在每个元素上插入新行吗?