2014-05-10 5 views
19

내가 URL의 페이지의 소스를 얻을 할 때 나는 Windows7의에 셀레늄 및 PhantomJS에 문제가와 셀레늄. browser.page_source<html><head></head></html> 만 반환합니다. 나는 browser.page_source 전에 잠을 잤지만 도움이되지 못했습니다. 리눅스에파이썬 : PhantomJS 빈 페이지 소스

from selenium import webdriver 
browser = webdriver.PhantomJS('phantomjs-1.9.7-windows\phantomjs.exe') 
url = 'myurl' 
browser.get(url) 
print browser.page_source 

가 완벽하게 작동 PhantomJS의 동일한 버전 :

내 코드입니다. 또한 그것은 트릭을 service_args=['--ignore-ssl-errors=true']를 않았다 사용하여 Windows Server 2003에

+0

은, 디버깅을 시도 스크린 샷 빈, 빈 이미지 예를 –

+2

에 대한 스크린 샷을 캡처합니다. 가 나는 PhantomJS 문제이고 내가 PyQt4의 웹킷과 페이지를로드하려고했지만 결과는, 단지 및 태그 동일하다고 생각했다. 이 나에게 두통주는 URL입니다 : 일부 _https_를 탐색 할 때 https://www.homesearch.com/browse?fulltextquery=miami+fl&page=0가 –

+0

저도 같은 문제가 발생했습니다 : // URL로 표시됩니다. 'time.sleep (few_seconds)'또는 webdriver의 [예상 조건]을 사용하여 (http://selenium-python.readthedocs.org/en/latest/api.html#selenium.webdriver.support.expected_conditions.presence_of_element_located) 일부 대기 요소를 브라우저에 호출 한 후 페이지에 표시 할 것임. –

답변

31

기본적으로 phantomjs는 SSLv3을 사용하지만 ssl의 버그 이후 많은 사이트는 tls로 마이그레이션합니다. 그래서 빈 페이지가있는 것입니다. service_args=['--ignore-ssl-errors=true', '--ssl-protocol=any']

browser = webdriver.PhantomJS('phantomjs-1.9.7-windows\phantomjs.exe', service_args=['--ignore-ssl-errors=true', '--ssl-protocol=any']) 
+0

그냥 무시를 사용하여 ssl 오류가 나를 위해 작동하지 않았기 때문에 ssl 프로토콜을 추가하는이 의견을 제안하여 제안했기 때문에 Upvoted. 명성 – freonix

+0

나는 이것을 한 번 이상 upvote 할 수 있기를 바란다 – valignatev

+0

'--ignore-ssl-errors'는 위험하기 때문에 자신이하는 일을 알지 못한다면 그것을 사용하지 말아야한다는 것을 명심하십시오. 다른 옵션은 대부분의 문제를 해결할 것입니다. –

8

에서 작동합니다!

browser = webdriver.PhantomJS('phantomjs-1.9.7-windows\phantomjs.exe', service_args=['--ignore-ssl-errors=true']) 
1
driverPhantom = webdriver.PhantomJS(driverLocation, service_args=['--ignore-ssl-errors=true', '--ssl-protocol=any'])  # initaling web driver for PhantomJs 

은 나를 위해 일한 사용합니다. 아래 화면의 크기를 증가

0

나를 위해 일한 :

driver = webdriver.PhantomJS(path2phantom, service_args=['--ignore-ssl-errors=true', '--ssl-protocol=any']) 
driver.set_window_size(2000, 1500)