selenium에서 마우스로 복사한 내용 저장하기

조회수 1900회

셀레늄으로 특정사이트를 들어가서 오른쪽마우스로 복사하기를 눌렀는데요

이걸 txt 파일에 저장을 하고싶어서 여러방법으로 시도해봤는데 안되서 도움을 구합니다


driver.close()  # 위에 생략한소스에서  셀레늄으로 마우스 오른쪽클릭해서 복사 누르고 끕니다

now = datetime.datetime.now()

filename = 'C:\py\\'

filename2 = datetime.datetime.now().strftime("%y%m%d_%H%M%S")

filename3 = '.txt'

fn = filename+filename2+filename3 

d=open(fn,'w') 

d.close()                #원하는곳에 현재시간을 이름으로한 txt파일 생성

time.sleep(1)    # 메모장 파일을 열고 붙여넣기하고싶은데

os.system(fn)   # 메모장이 열리는것까지 실행되고 

time.sleep(1)    

#이 아래부터가 실행이 안됩니다

pyautogui.moveTo(1000,700,1)   #메모장 열린화면에서 가운데 클릭

time.sleep(1)

pyautogui.click()

time.sleep(1)

pyautogui.keyDown('ctrl')        # pyautogui.hotkey로 하다가 안되서 키를 하나씩 입력해봤으나 안됨

time.sleep(1)

pyautogui.press('v')

time.sleep(1)

pyautogui.keyUp('ctrl')

time.sleep(1)

pyautogui.keyDown('ctrl')

time.sleep(1)

pyautogui.press('s')

time.sleep(1)

pyautogui.keyUp('ctrl')

print('\n \t  저장완료! ')'''

제가 직접 마우스나 키보드로 붙여넣기하면 잘되는거보면 복사는 잘됐는데 붙여넣기가 안되네요 이거 해결방법이나 아니면 셀레늄으로 열어서 복사한 정보를 txt에 저장하는 더 좋은방법이 있을까요? (복사한 정보는 특정사이트에서 f12누르고 network에 나오는것들중 하나를 우클릭하고 copy response를 클릭한것)

1 답변

  • 좋아요

    0

    싫어요
    채택 취소하기

    클립보드는 시스템 영역이라 os 의 api 를 핸들링 해야 합니다. 그리고 os에 종속적입니다. 아래의 코드는 윈도우만 가능하며 클립보드의 데이터를 파이썬 변수로 가져오는 예제 입니다.

    나머지는 파이썬 변수로 받은 텍스트를 파일에 저장하면 되겠지요.

    • windows api 중 getclipboarddata 설명

    https://docs.microsoft.com/en-us/windows/win32/api/winuser/nf-winuser-getclipboarddata

    • 기본모듈인 ctypes 를 이용한 방법
    import ctypes
    import ctypes.wintypes as w
    
    user32 = ctypes.windll.user32
    
    GetClipboardData = user32.GetClipboardData
    GetClipboardData.argtypes = w.UINT,
    GetClipboardData.restype = w.HANDLE
    
    user32.OpenClipboard(None)
    h = GetClipboardData(13)
    text = ctypes.c_wchar_p(h).value
    user32.CloseClipboard()
    
    print(text)
    
    • pywin32 모듈을 이용한 방법
    import win32clipboard
    
    win32clipboard.OpenClipboard()
    s = win32clipboard.GetClipboardData(13)
    win32clipboard.CloseClipboard()
    print(s)
    
    • 이거때문에 하루종일 고생했는데 답변 감사합니다 오늘도 하나 배워가네요 nyw123 2020.1.12 06:25

답변을 하려면 로그인이 필요합니다.

프로그래머스 커뮤니티는 개발자들을 위한 Q&A 서비스입니다. 로그인해야 답변을 작성하실 수 있습니다.

(ಠ_ಠ)
(ಠ‿ಠ)