Skip to main content
 首页 » 编程设计

python之selenium webdriver中的UTF编码

2025年05月04日28sxdcgaq8080

我目前有以下内容:

from selenium import webdriver 
d = webdriver.Chrome() 
# request the url and get the page contents 
title = result.find("span", {"class": "episode"}).find("a").text 

但是,返回给我的“文本”是:

# Note the truncation on the word "envol" 
<td class="title"><a href="/title/tt1844708/">La grande envol</a></td> 

但是,当我下载页面源时,它显示如下:

<td class="title"><a href="/title/tt1844708/">La grande envolée</a> 
    <span class="year_type">(1927)</span><br /> 
</td> 

为什么文本在 webdriver 响应中被截断?我如何确保它为我提供完整的 utf-8 编码文本?

请您参考如下方法:

据我了解,您正在通过 page_source内容到 BeautifulSoup 以供进一步解析。

我不会那样做,因为 selenium 本身可以处理 parsing part很不错。例如,您可以使用 CSS selectors :

driver.find_element_by_css_selector('span.episode a').text 

示例(使用 this IMDb page ):

>>> from selenium import webdriver 
>>> driver = webdriver.Chrome() 
>>> driver.get('http://www.imdb.com/title/tt1844708/') 
>>> print(driver.find_element_by_xpath('//span[@itemprop="name"]').text) 
La grande envolée