简体   繁体   中英

Encoding problem in python3 with selenium

I have strange problem in scraping a unicode page in selenium python. i am sharing the full code, the code is giving me wrong encoding. i tried almost every thing but no success so far, any help will be so appreciated.

# -*- coding: UTF-8 -*-
from selenium import webdriver
from selenium.webdriver.support.ui import WebDriverWait
from selenium.webdriver.support import expected_conditions as EC
from selenium.webdriver.common.by import By
from selenium.common.exceptions import TimeoutException
from selenium.webdriver.support import expected_conditions as ec
import time


options = webdriver.ChromeOptions()
options.add_argument('--ignore-certificate-errors')
options.add_argument('--ignore-certificate-errors-spki-list')
options.add_argument('--ignore-ssl-errors')
options.add_argument("--headless")
options.add_argument("--window-size=1920x1080")
options.add_argument('--no-sandbox')
options.add_argument('--disable-dev-shm-usage')
#options.add_experimental_option('prefs', {'intl.accept_languages': 'pt,pt_BR'})

chrome_path = '/var/www/chromedriver'
driver = webdriver.Chrome(chrome_path,  options=options)
driver.get("http://www.correios.com.br/solucoes-empresariais/correios-facil")
driver.implicitly_wait(10)
a = driver.find_elements_by_css_selector("p")
for i in a:
    s = i.text
    #s = s.encode("UTF-8")
    print(s)

driver.quit()

In output i am getting Wrong encoding like below

Com as soluções de um grande operador logÃstico, a sua empresa pode se destacar e crescer ainda mais. Fortaleça seu negócio, tornando-se um parceiro dos Correios. Com o Cartão Correios Fácil você terá acesso à vantagens exclusivas, preços diferenciados, ferramentas gratuitas e pagamento a prazo. Adquira agora o seu Cartão Correios Fácil. Com ele você poderá utilizar os serviços: Encomendas, Carta Comercial, Impresso, *CorreiosLog+, Certificação Digital, **Produtos. Atenção! Você vai precisar do seu certificado digital (e-CNPJ). Caso não possua, clique aqui. Se sua empresa ou o órgão público que você representa, ainda não possui contrato com os Correios, ou se já possui e deseja ter acesso a outros serviços e condições ainda mais vantajosas, utilize a modalidade abaixo, através do Sistema Eletrônico de Informações â SEI: Para te ajudar, criamos o seguinte passo a passo Caso você queira ir direto para a página do SEI, clique aqui Em caso de dúvidas, entre em contato com nossa Central de Atendimento pelo telefone 3003-0800. *Para começar a utilizar o serviço de logÃstica â CorreiosLog+, preencher o formulário http://www2.correios.com.br/servicos/falecomoscorreios/cliente_contrato.cfm para atendimento comercial. **Sujeito à disponibilidade. âClique aqui e conheça os Termos e Anexos dos Serviços contratados.â

Try this:

    test = ' Relógio feminino dourado '
    label =  test.encode('latin-1').decode('utf-8')

More info on encodings: https://docs.python.org/3/library/codecs.html#standard-encodings

The technical post webpages of this site follow the CC BY-SA 4.0 protocol. If you need to reprint, please indicate the site URL or the original address.Any question please contact:yoyou2525@163.com.

 
粤ICP备18138465号  © 2020-2024 STACKOOM.COM