Akihosi
190
2020-01-02 11:24:43
8
1077

자바 셀레니움 크롤링


셀레니움으로 크롤링을 해서 페이지를 열어보려고 하는데 실행을하면

자꾸 이렇게 열립니다 어떻게하면 안뜰까요?


public class SeleniumTest {
 
	//WebDriver
	private WebDriver driver;
	private WebElement element;
	private String url;
    
	//Properties
	public static String WEB_DRIVER_ID = "webdriver.chrome.driver";
	public static String WEB_DRIVER_PATH = "C:\\Users\\Desktop\\chromedriver_win32\\chromedriver.exe";
	
	public static void main(String[] args) {
 
 		SeleniumTest test = new SeleniumTest();
	}
    
	public SeleniumTest() {
		//System Property SetUp
		System.setProperty(WEB_DRIVER_ID, WEB_DRIVER_PATH);
        
		//Driver SetUp
		ChromeOptions options = new ChromeOptions();
		options.setCapability("ignoreProtectedModeSettings", true);
		driver = new ChromeDriver(options);
        
		url = "https://nid.naver.com/nidlogin.login";
	}
}


0
  • 답변 8

  • 스우
    148
    2020-01-02 11:42:58

    크롬 창이 열려서 문제이신 거라면

    options.addArguments("headless");


  • 개이득인개발
    3k
    2020-01-02 11:50:46

    모든 답을 다 드리고 싶지만 힌트만 드립니다. 

    url을 잘 보세요 왜 url을 저렇게 적으셨는지 생각해보세요

  • 개이득인개발
    3k
    2020-01-02 11:51:49 작성 2020-01-02 11:55:37 수정됨

    그리고 추가적으로 말씀드리면 셀레늄으로 네이버 로그인(sendKey) 하는건 불가능합니다. 아마 보안문자에서 걸릴 확률이 100프로일듯합니다. 다른방법을 쓰셔야 가능합니다.

  • 양파로오
    54
    2020-01-02 12:00:58

    headliess를 설정해서 창을 안띄우는 방법이 있습니다.

    다만 headless를 뜨는 경우, 이벤트에 대한 결과 값을 못받는 경우가 생길 수 있으니 조심하셔야합니다.


    개이득인개발님의 말처럼 로그인이 불가능한 경우는

    셀레니움으로 반복적인 접속을 하는 경우 보안문자로 인해 로그인이 어려울 수 있으나, 로그인은 가능합니다.

  • Akihosi
    190
    2020-01-02 12:47:13

    url 부분을

    url = "https://www.naver.com";

    이렇게 다시 썼는데 위에 사진이랑 똑같이나옵니다.

    로그인을 안하고 페이지를 여는것은 가능하지 않나요?

  • 개이득인개발
    3k
    2020-01-02 12:54:01

    양파로오

    제가 sendKeys 메서드롤 사용해서 시도 해 본 결과 보안문자에 100프로 걸립니다. 다른방법을 사용하여 저는 로그인을 했습니다. ㅎㅎ

  • 개이득인개발
    3k
    2020-01-02 12:54:46 작성 2020-01-02 12:57:52 수정됨

    Akihosi

    그냥 알려드리겠습니다.

    driver.get(url)을 넣으시면 원하는 페이지를 얻으실 수 있습니다. 셀레늄은 초기화와 동시에 브라우저가 저 상태로 실행이 됩니다.

    즉 url이 초기화가 되어야합니다. 현재 작성하신 코드만 보았을땐 url이 초기화 되지 않았습니다.

    driver = new ChromeDriver(options);
            
    		url = "https://nid.naver.com/nidlogin.login";
    driver.get(url)  추가하십시오
  • Akihosi
    190
    2020-01-02 14:35:42
  • 로그인을 하시면 답변 을 등록할 수 있습니다.