2016-04-06 4 views
1

Dies ist die Sache, ich bin PhantomJS und Selen in Python mit Seiten zu machen, das ist der Code:Zeichen nicht richtig decodiert mit Jsoup und PhantomJS

import sys, time 
from selenium import webdriver 
from selenium.webdriver.common.by import By 
from selenium.webdriver.support.ui import WebDriverWait 
from selenium.webdriver.support import expected_conditions as EC 

path_to_chromedriver = 'C:\\..\\chromedriver' 

section = sys.argv[1] 
path = sys.argv[2] 
links = sys.argv[3] 

listOfLinks = [] 
file = open(links, 'r') 
for link in file: 
    listOfLinks.append(link) 

dr = webdriver.Chrome(executable_path = path_to_chromedriver) 

cont = 0 
for link in listOfLinks: 
    try: 
     dr.get(link) 

     # Wait. 
     element = WebDriverWait(dr, 20).until(
      EC.presence_of_element_located((By.CLASS_NAME, "_img-zoom")) 
     ) 

     time.sleep(1) 

     htmlPath = path + section + "_" + str(cont) + ".html" 

     # Write HTML. 
     file = open(htmlPath, 'w') 
     file.write(dr.page_source) 
     file.close() 

     cont = cont + 1 
    except: 
     print("Exception") 

dr.quit() 

Dieser Code erstellt eine HTML der Links erhalten als Parameter.

Diese Datei ist von Jsoup in Java analysiert:

Document document = Jsoup.parse(file, "UTF-8"); 

jedoch Sonderzeichen wie '€', 'A', 'E', 'I', usw. nicht richtig decodiert werden und sie sind durch "?" ersetzt werden. Wie kann ich das lösen?

+2

Dokument versuchen Dokument = Jsoup.parse (Datei, "ISO-8859-1"); – Eritrean

+0

@Uzochi yep, das funktioniert! – cuoka

Antwort

0

Lösung von Uzochi

Try Document document = Jsoup.parse (Datei: "ISO-8859-1") gefunden;