2016-06-15 4 views
2

최근에 셀레늄 파이썬 스크레이퍼를 완료했습니다. 개인용 컴퓨터에서 실행할 때 완전히 작동하지만 서버에서 실행할 때 결과가 동일하지 않습니다. 서버에 나는 pyvirtualdisplay셀레늄이 로컬 컴퓨터에서 작동하므로 서버에서 작동하지 않습니다.

browser.get('https://example.com') 
html = browser.page_source 

를 사용하여 헤드리스를 실행하고 그리고 이것은 pyvirtualdisplay 내 코드입니다.

display = Display(visible=0, size=(800, 600)) 
display.start() 

로컬 컴퓨터에서 실행하는 동안, 그것은 완전히 자바 스크립트에 의해 생성되는하지만 난 내 서버에서 실행할 때 자바 스크립트에 의해 생성 된 HTML 콘텐츠를 잡고하지 않는 HTML을 잡고, 그래서 나는 단지와 끝까지 JS가 생성 한 내용이없는 부분 페이지

업데이트 : 나는 또한 셀레늄을 사용한 제안에 따라 스크린 샷을 찍었습니다. Screenshot은 페이지가 부분적으로로드되었고 JS의 내용이 화면에로드되지 않았 음을 보여줍니다.

+0

'브라우저'는 어떻게 정의되어 있습니까? 감사. – alecxe

+0

@alecxe'browser = webdriver.Firefox()' – abhanan93

+0

서버에서 실제 GUI 또는 프레임 버퍼 (헤드리스)에서 실행 중입니까? –

답변

1

OS 또는 브라우저 구성에 문제가있는 것 같습니다. 당신이해야 할 첫 번째 일은 프레임 버퍼의 결과를 스크린 샷하고 파이어 폭스가 JS 콘텐츠를 올바르게로드하는지 확인하는 것입니다. 그렇지 않은 경우 브라우저/OS 구성을 확인해야 할 수 있습니다. 그것은 파이어 폭스/브라우저 문제, 모든 적절한 플러그인을 설치했는지 확인 인 경우

pyvirtualdisplay은 당신이 할 수도 here

specflow 스크린 샷에서 볼 수 스크린 샷하는 방법, 지침 here

있다 Java는 서버에서 javascript를 실행해야했습니다. 해당 브라우저에서 javascript가 활성화되어 있는지 확인하십시오.

+0

저는 Ubuntu 서버도 가지고 있습니다. 처음으로 해당 서버에서 스크립트를 테스트 한 결과 완벽하게 작동했습니다. 하지만 스크립트를 다시 실행했을 때 CentOS 서버와 같은 문제가 발생하지 않았습니다. CentOS 서버에서는 한 번도 작동하지 않았습니다. 스크린 샷을 보내 주셔서 감사합니다. 나는 그들을 들여다보고 있으며, 당신에게 통보 할 것입니다. – abhanan93

+0

제안대로, 나는 스크린 샷을 찍었습니다. 스크린 샷은 페이지가 부분적으로로드되었고 JS의 내용이로드되지 않음을 나타냅니다. – abhanan93

+0

@ abhanan93 그래서 문제는 셀레늄이 아닙니다. 귀하의 운영 체제, 프레임 버퍼 또는 브라우저 –

관련 문제