17

It's my 2nd day with Selenium 2 library and the pain with Unicode never seem to subside.

I'm just doing the most basic operation, want to print the page source:

from selenium import webdriver


driver = webdriver.Firefox()
driver.get("http://google.com")

print driver.page_source

Sure enough, I get an error:

UnicodeEncodeError: 'ascii' codec can't encode character u'\u0119' in position 62045:  
ordinal not in range(128)

How can I please encode this to utf-8 ?

nutship
  • 4,314
  • 12
  • 46
  • 60

2 Answers2

28

You have options, based on this similar question.

You can either convert the source to all ascii losing the Unicode characters in the process.

(driver.page_source).encode('ascii', 'ignore')

Or, and I think you'll prefer this, you can encode it to utf-8 like this: (driver.page_source).encode('utf-8').

Community
  • 1
  • 1
jaynp
  • 3,145
  • 4
  • 27
  • 42
1

Instead of print(string), use print(repr(string)) to return a printable representation of the object.

ron_g
  • 1,184
  • 1
  • 16
  • 35