2017-11-29 3 views
0

나중에 구문 분석을 위해 전체 HTML 소스를 파일로 저장해야합니다.driver.page_source는 빈 문자열을 반환합니다.

여기서 명백한 것이 빠져있는 것 같지만 코드는 페이지 소스를 가져 와서 텍스트 파일로 저장해야합니다. 빈 파일을 만드는 것뿐입니다. 정적 문자열을 쓰면 저장됩니다. 그래서 그것은 의심 스럽습니다. page_source가 비어 있습니다.

from selenium import webdriver 
from selenium.webdriver.common.keys import Keys 
import time 
# imported keys tp try Enter key simualtion. 
driver = webdriver.Firefox() 
#driver.set_window_size(2000, 1500) 
driver.get("http://www.moneycontrol.com") 
searchText = driver.find_element_by_id("search_str") 
searchText.send_keys("dlf") 
search_button = driver.find_element_by_css_selector(".btn_black.btn_search.FR") 
search_button.click() 
time.sleep(3)# i know this isn't the right way to wait. 
StrSource = driver.page_source 
textfile = open('test1.txt', 'w') 
textfile.write(StrSource) 
textfile.close() 
+0

유니 코드 인코딩과 관련된 Python 클라이언트 문제가있는 것으로 보입니다. – DebanjanB

답변

0

드라이버가 모든 페이지 요소가 완전히로드 될 때까지 기다릴 수 있도록하기 위해 암시 적 대기를 추가합니다. 문제가 해결되지 않을 경우

driver = webdriver.Firefox() 
driver.implicitly_wait(10) 

후 대상 페이지에있는 모든 요소에 대한 명시 적으로 대기를 추가합니다. 대상 페이지가 완전히로드되었는지 확인하기 위해 Assert를 추가하십시오. 그런 다음 페이지 소스를 텍스트 파일로 스크래핑하기 시작합니다.

0

고객님의 스크립트를 실행했습니다. 제어 흐름은 우리가 선 공격까지 꽤 좋은 : test1.txtSelenium-Python 클라이언트 내에서 쓰기를 시도하는 동안

textfile.write(StrSource) 

을 표시 오류로 :

return codecs.charmap_encode(input,self.errors,encoding_table)[0] 
UnicodeEncodeError: 'charmap' codec can't encode characters in position 57354-57358: character maps to <undefined> 

그것은 Selenium-Python 클라이언트 알려진 문제입니다 v3.7.0 및 우리는 더 빨리 수정을 기대하고 있습니다.

+0

인코딩 후 utf-8에서 저장할 수 있습니까? 해결 방법을 제안 해 주시겠습니까? – cicilia

관련 문제