/cyworld-bot

πŸ€– Cyworld image crawler

Primary LanguagePythonMIT LicenseMIT

μ‹Έμ΄μ›”λ“œμ˜ μ‚¬μ§„λ“€λ‘œ 좔얡을 κ°„μ§ν•˜μ„Έμš”

μ„€μΉ˜ 및 μ‚¬μš©λ²• - GUI 방식

0. 사전 μ€€λΉ„

싀행을 μœ„ν•΄ 크둬 λΈŒλΌμš°μ €μ™€ λ“œλΌμ΄λ²„κ°€ ν•„μš”ν•©λ‹ˆλ‹€.

λ“œλΌμ΄λ²„μ— λŒ€ν•œ μžμ„Έν•œ λ‚΄μš©μ€ μ—¬κΈ°λ₯Ό μ°Έκ³ ν•΄μ£Όμ„Έμš”

1. ν”„λ‘œκ·Έλž¨ λ‹€μš΄λ‘œλ“œ

2020.02.04 κΈ°μ€€ 지원 운영체제 (Windows, MacOS)

2. κΈ°λ³Έ μ„€μ •

  • λ‹€μš΄λ‘œλ“œ 받은 νŒŒμΌμ„ μ‹€ν–‰ν•΄μ£Όμ„Έμš”
    • μ½˜μ†”μ°½μ΄ λ¨Όμ € ν‘œμ‹œλ˜κ³  μž μ‹œ λ’€ μ•„λž˜μ™€ 같은 창이 ν‘œμ‹œλ©λ‹ˆλ‹€.
    • β€» μ½˜μ†”μ°½μ€ μ ˆλŒ€ 닫지 λ§ˆμ„Έμš” (ν”„λ‘œκ·Έλž¨μ΄ μ’…λ£Œλ©λ‹ˆλ‹€.) β€»

  • μ‹Έμ΄μ›”λ“œ μ‚¬μš©μž 계정 정보λ₯Ό μ˜¬λ°”λ₯΄κ²Œ μž…λ ₯ν•΄μ£Όμ„Έμš”
  • 크둬 λ“œλΌμ΄λ²„ 선택 λ²„νŠΌμ„ 눌러 사전 μ€€λΉ„ λ‹¨κ³„μ—μ„œ λ‹€μš΄λ‘œλ“œλ°›μ€ 크둬 λ“œλΌμ΄λ²„ νŒŒμΌμ„ μ„ νƒν•΄μ£Όμ„Έμš”
    • λ‹€μš΄λ‘œλ“œλ°›μ€ 크둬 λ“œλΌμ΄λ²„ νŒŒμΌμ€ μ••μΆ• ν•΄μ œν•΄μ•Όν•©λ‹ˆλ‹€.
  • 상세 μ˜΅μ…˜ - 일반적인 경우 μ‘°μž‘ν•  ν•„μš”λŠ” μ—†μŠ΅λ‹ˆλ‹€.
    • parser, downloader ν”„λ‘œμ„ΈμŠ€ 수λ₯Ό 지정할 수 μžˆμŠ΅λ‹ˆλ‹€.
    • timeout: νŽ˜μ΄μ§€ λ‘œλ”© λŒ€κΈ°μ‹œκ°„μž…λ‹ˆλ‹€. μ‹Έμ΄μ›”λ“œ 접속 μ‹œ ν•΄λ‹Ή μ‹œκ°„λ§ŒνΌ λŒ€κΈ°ν•˜λ©°, μ΄ˆκ³Όν•  경우 μž‘μ—…μ„ μ€‘λ‹¨ν•©λ‹ˆλ‹€.
      • 둜그인 μ‹œλ„, ν™ˆ νŽ˜μ΄μ§€λ‘œ 이동 쀑 였λ₯˜κ°€ λ°œμƒν•  경우 timeout 값을 더 늘린 ν›„ λ‹€μ‹œ μ‹œλ„ν•΄μ£Όμ„Έμš”
    • delay: μ‹Έμ΄μ›”λ“œ μ„œλ²„ λΆ€ν•˜ 방지λ₯Ό μœ„ν•œ CyBot 자체 λŒ€κΈ°μ‹œκ°„μž…λ‹ˆλ‹€.
      • κΈ°λ³Έκ°’ μ‚¬μš©μ„ ꢌμž₯ν•©λ‹ˆλ‹€.

λͺ¨λ“  μ„€μ • ν›„ μ‹œμž‘ν•˜κΈ° λ²„νŠΌμ„ 눌러 백업을 μ‹œμž‘ν•  수 μžˆμŠ΅λ‹ˆλ‹€.

4. μž‘μ—… 쀑

κ²Œμ‹œλ¬Όμ„ μˆ˜μ§‘ν•˜μ—¬ λ‹€μš΄λ‘œλ“œ μž‘μ—…μ΄ μ§„ν–‰λ©λ‹ˆλ‹€.

κ²Œμ‹œλ¬Ό μˆ˜μ— 따라 μ†Œμš”λ˜λŠ” μ‹œκ°„μ΄ λ‹¬λΌμ§ˆ 수 μžˆμŠ΅λ‹ˆλ‹€. μ’…λ£Œν•˜μ§€ 말고 μž μ‹œ κΈ°λ‹€λ €μ£Όμ„Έμš”

3. μ™„λ£Œ

μž‘μ—…μ΄ μ™„λ£Œλ˜λ©΄ λ©”μ‹œμ§€μ™€ ν•¨κ»˜ 결과물을 확인할 수 μžˆλŠ” λ²„νŠΌμ΄ ν‘œμ‹œλ©λ‹ˆλ‹€.

μ„€μΉ˜ 및 μ‚¬μš©λ²• - CLI 방식

0. 사전 μ€€λΉ„

μ•„λž˜ κ°€μ΄λ“œλ₯Ό 톡해 μƒμ„Έν•œ μ„€μΉ˜ 방법을 ν™•μΈν•˜μ‹€ 수 μžˆμŠ΅λ‹ˆλ‹€.

1. μ†ŒμŠ€μ½”λ“œ λ‹€μš΄λ‘œλ“œ

Clone or download λ²„νŠΌμ„ 눌러 ZIP 파일둜 μ†ŒμŠ€μ½”λ“œλ₯Ό λ‹€μš΄λ‘œλ“œ λ°›μŠ΅λ‹ˆλ‹€.

  • λ‹€μš΄λ‘œλ“œ 받은 ν›„ 압좕을 ν’€μ–΄μ£Όμ„Έμš”

2. 크둬 λΈŒλΌμš°μ € 버전 확인

메뉴 > 도움말 > Chrome 정보 μˆœμ„œλŒ€λ‘œ μ§„μž…ν•˜μ—¬ μ •λ³΄μ°½μœΌλ‘œ μ§„μž…ν•©λ‹ˆλ‹€.

크둬 μ •λ³΄μ°½μ—μ„œ 크둬 λ²„μ „μ˜ 맨 μ•žμžλ¦¬λ₯Ό λ©”λͺ¨ν•΄μ£Όμ„Έμš” (μœ„ μ‚¬μ§„μ˜ 경우 78)

3. 크둬 λ“œλΌμ΄λ²„ λ‹€μš΄λ‘œλ“œ

크둬 λ“œλΌμ΄λ²„ λ‹€μš΄λ‘œλ“œ νŽ˜μ΄μ§€μ— μ ‘μ†ν•˜μ—¬ 3번 κ³Όμ •μ—μ„œ λ©”λͺ¨ν•œ 버전과 μΌμΉ˜ν•˜λŠ” λ“œλΌμ΄λ²„λ₯Ό λ‹€μš΄λ‘œλ“œ λ°›μŠ΅λ‹ˆλ‹€.

컴퓨터 μš΄μ˜μ²΄μ œμ— λ§žλŠ” 버전을 λ‹€μš΄λ‘œλ“œ λ°›κ³  압좕을 ν’€μ–΄μ€λ‹ˆλ‹€.

  • μ••μΆ• ν•΄μ œ ν›„ λ‚˜μ˜¨ νŒŒμΌμ€ driver 폴더에 λ„£μ–΄μ£Όμ„Έμš”

4. 의쑴 라이브러리 μ„€μΉ˜

CMD ν˜Ήμ€ 터미널 등을 μ†ŒμŠ€μ½”λ“œκ°€ μžˆλŠ” ν΄λ”μ—μ„œ μ—΄μ–΄ μ•„λž˜ λͺ…λ Ήμ–΄λ₯Ό μž…λ ₯ν•©λ‹ˆλ‹€.

  • 파이썬이 μ„€μΉ˜λ˜μ–΄ μžˆμ–΄μ•Ό ν•©λ‹ˆλ‹€!
pip3 install -r requirements.txt

5. κΈ°λ³Έ μ„€μ •

  • config.ini νŒŒμΌμ„ μ—΄μ–΄ 개인 섀정을 μ§„ν–‰ν•΄μ£Όμ„Έμš”
    • user
      • email: μ‹Έμ΄μ›”λ“œ 이메일
      • password: λΉ„λ°€λ²ˆν˜Έ
    • bot
      • chromedriver: ν¬λ‘¬λ“œλΌμ΄λ²„ 경둜
        • μœˆλ„μš°: ./driver/chromedriver.exe
        • λ¦¬λˆ…μŠ€ & λ§₯: ./driver/chromedriver
      • wait: ν¬λ‘¬λ“œλΌμ΄λ²„ λŒ€κΈ°μ‹œκ°„ (초)
        • λ„€νŠΈμ›Œν¬ ν™˜κ²½μ΄ 쒋지 μ•Šμ•„ 둜그인, ν™ˆμœΌλ‘œ 이동 κ³Όμ • λ“±μ—μ„œ μ‹œκ°„μ΄ˆκ³Ό 였λ₯˜κ°€ λ°œμƒν•  경우 적절히 μ‘°μ ˆν•΄μ£Όμ„Έμš”
      • delay: λ‹€μš΄λ‘œλ“œ μ§€μ—°μ‹œκ°„ (λ˜λ„λ‘μ΄λ©΄ 기본값인 3초λ₯Ό μœ μ§€ν•΄μ£Όμ„Έμš”)
      • parser: νŒŒμ‹± ν”„λ‘œμ„ΈμŠ€ 수
        • ⚠️ CPU μ½”μ–΄ μˆ˜λ³΄λ‹€ 큰 수λ₯Ό μž…λ ₯ν•˜μ§€ μ•ŠλŠ”κ²ƒμ„ μΆ”μ²œν•©λ‹ˆλ‹€. (1 ~ μ½”μ–΄ 수)
      • downloader: λ‹€μš΄λ‘œλ” ν”„λ‘œμ„ΈμŠ€ 수
        • ⚠️ CPU μ½”μ–΄ μˆ˜λ³΄λ‹€ 큰 수λ₯Ό μž…λ ₯ν•˜μ§€ μ•ŠλŠ”κ²ƒμ„ μΆ”μ²œν•©λ‹ˆλ‹€. (1 ~ μ½”μ–΄ 수)
[user]
email=이메일
password=λΉ„λ°€λ²ˆν˜Έ

[bot]
chromedriver=./driver/chromedriver.exe
delay=3
parser=4
downloader=4

6. μ‹€ν–‰

μ•„λž˜ λͺ…λ Ήμ–΄λ₯Ό μž…λ ₯ν•˜μ—¬ μ‹Έμ΄μ›”λ“œ 이미지 μˆ˜μ§‘μ„ μ‹œμž‘ν•  수 μžˆμŠ΅λ‹ˆλ‹€.

python3 bot.py

  • κ²°κ³Ό μ΄λ―Έμ§€λŠ” images 폴더 내에 λ‚ μ§œ_번호_제λͺ© ν˜•μ‹μœΌλ‘œ μ €μž₯λ©λ‹ˆλ‹€
  • κ²°κ³Ό ν…μŠ€νŠΈλŠ” posts 폴더 내에 λ‚ μ§œ_번호_제λͺ© ν˜•μ‹μœΌλ‘œ μ €μž₯λ©λ‹ˆλ‹€

PyInstaller λΉŒλ“œ

파이썬 3.7.5 λ²„μ „μœΌλ‘œ ν…ŒμŠ€νŠΈ 및 λΉŒλ“œν•¨

# Windows
pyinstaller -F -i="icon.ico" --add-data "icon.ico;." --add-data "logo.png;." --add-data "loading.gif;." --name CyBot --clean bot-gui.py

# Mac OS
pyinstaller -F -i=icon.icns --add-data icon.icns:. --add-data logo.png:. --add-data loading.gif:. --name CyBot --clean bot-gui.py
  • -F: ν•˜λ‚˜μ˜ 파일둜 λ²ˆλ“€λ§

  • -i: μ• ν”Œλ¦¬μΌ€μ΄μ…˜ μ•„μ΄μ½˜ 지정

  • --add-data: μ• ν”Œλ¦¬μΌ€μ΄μ…˜ λ¦¬μ†ŒμŠ€ 지정

  • --name: λΉŒλ“œ κ²°κ³Όλ¬Ό 파일λͺ…

  • --clean: μž„μ‹œνŒŒμΌ 및 μΊμ‹œ μ‚­μ œ

  • -w: μ˜΅μ…˜ μ‚¬μš© λΆˆκ°€, (λ©€ν‹° ν”„λ‘œμ„Έμ‹± κ΄€λ ¨ λ¬Έμ œκ°€ λ°œμƒ.. ν•΄κ²°ν•˜κΈ° μœ„ν•΄ λ…Έλ ₯ν–ˆμœΌλ‚˜ λ¬Έμ œμ μ„ 찾지 λͺ»ν•¨)

이슈

μ‚¬μš© 쀑 λ¬Έμ œκ°€ λ°œμƒν•  경우 이슈 λ‚¨κ²¨μ£Όμ„Έμš” 😊

개발자

Geunhyeok LEE