在抓取的文本中保留格式化(t) - Python Selenium



我有一个程序,使用以下代码从网站获取文本:

import selenium
driver = selenium.webdriver.Chrome(executable_path=r"chromedriver.exe")

def get_raw_input(link_input, website_input, driver): 
driver.get(f'{website_input}')
try:
here_button = driver.find_element_by_xpath('/html/body/div[2]/h3/a')
here_button.click()
raw_data = driver.find_element_by_xpath('/html/body/pre').text
except:
move_on = False
while move_on == False:
try:
raw_data = driver.find_element_by_class_name('output').text
move_on == True
except:
pass
driver.close()
return raw_data

它所针对的文本部分的格式如下

englishwordtabfrenchword

但是,我得到的返回是这种格式:

englishwordspacefrenchword

文本的英文部分可以是一个带有空格的短语,我不能简单地使用.split(" "),因为它也可能拆分短语。

我的最终目标是保持格式化使用制表符而不是空格,这样我可以.split("t"),使事情更容易以后的操作。

任何帮助都将是非常感激的:)

Selenium以浏览器呈现的方式返回元素文本。所以它通常是"正常化"的空白空间(所有内部空格符号变成一个空格)。

你可以在这里看到一些讨论。解决方案,以获得实际间距文本硒家伙建议是查询textContent属性从元素。

示例如下:

raw_data = driver.find_element_by_class_name('output').get_property('textContent')

最新更新