Programming/Python
selenium, pyautogui 이용시 한글 입력
패치#노트
2021. 6. 11. 16:23
728x90
반응형
어떤 게시판을 크롤링하고 싶어서
selenium 으로 작업하던 도중 pyautogui 를 이용하여 글 제목을 크롤링해서 붙여넣기를 하는데
계속 오류가 발생했었다.
그 원인은..... 한글 입력이 되지 않았던것..
그래서 그 해결책을 조금 찾아봤다.
우선
pip install pyperclip
이놈을 인스톨하고 나서.
import pyperclip
file_name = '한글 제목'
pyperclip.copy(file_name)
pyautogui.hotkey('ctrl', 'v')
이런식으로 작업을 하면 원하는 곳에 한글을 자동으로 입력할 수 있게 된다.
클립보드로 복사 후 다시 붙여 넣는 방식이라고 생각하면 된다.
또한.. 크롤링 시 웹페이지를 자동으로 저장할 때는 특수문자
? < > | : * / \ 등의 특수문자가 들어가게 되면 오류가 발생하게 된다.
이것 또한 해결을 해 주는 것이 좋다.
[특수문자 없애기-1]
# 특수문자 없애기-1
characters = "/'!?|*<>:\\"
str_title = "안녕하세요_!@##$%%^^|/'!?|*<>:\\: Goodmorning"
new_title = ''.join(x for x in str_title if x not in characters)
print(new_title)
#출력
안녕하세요_@##$%%^^ Goodmorning
이런식으로 그냥 없애는 방식으로 진행했다.
replace, 정규식의 sub 등이 있는데 번거롭기만 한듯.
위의 방식이 나에게는 가장 간단한 방식이라고 생각한다.
[특수문자없애기-2]
# 특수문자 없애기-2
import re
str_title = "안녕하세요_!@##$%%^^|/'!?|*<>:\\: Goodmorning"
new_title = re.sub('[^a-zA-Z0-9ㄱ-힣]', '_', str_title)
print(new_title)
#출력
안녕하세요_______________________Goodmorning
정규식도 이용해서 작업을 해봤다.
1번 방법도 괜찮지만 for문도 돌리고, 혹시나 글 이외의 특수문자들로 인해서 다른 오류가 나면 안되니깐..
2번째 방법은 특수문자나 중간 띄워쓰기 부분은 '_' underscore 로 모두 변환
728x90
반응형