我目前有以下内容:
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
