An open API service indexing awesome lists of open source software.

https://github.com/leegeunhyeok/cyworld-bot

πŸ€– Cyworld image crawler
https://github.com/leegeunhyeok/cyworld-bot

Last synced: 21 days ago
JSON representation

πŸ€– Cyworld image crawler

Awesome Lists containing this project

README

        


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



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

### 0. 사전 μ€€λΉ„

싀행을 μœ„ν•΄ `크둬 λΈŒλΌμš°μ €`와 `λ“œλΌμ΄λ²„`κ°€ ν•„μš”ν•©λ‹ˆλ‹€.
- ꡬ글 크둬 λΈŒλΌμš°μ € - [λ‹€μš΄λ‘œλ“œ](https://www.google.com/intl/ko/chrome) ν›„ μ„€μΉ˜
- 크둬 λ“œλΌμ΄λ²„ - [λ‹€μš΄λ‘œλ“œ](https://sites.google.com/a/chromium.org/chromedriver/downloads)

λ“œλΌμ΄λ²„μ— λŒ€ν•œ μžμ„Έν•œ λ‚΄μš©μ€ [μ—¬κΈ°](#3-크둬-λ“œλΌμ΄λ²„-λ‹€μš΄λ‘œλ“œ)λ₯Ό μ°Έκ³ ν•΄μ£Όμ„Έμš”

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

- CyBot [λ‹€μš΄λ‘œλ“œ](https://github.com/leegeunhyeok/cyworld-bot/releases)

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

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

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

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

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

### 4. μž‘μ—… 쀑

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

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

### 3. μ™„λ£Œ

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

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

### 0. 사전 μ€€λΉ„

- 파이썬3 - [λ‹€μš΄λ‘œλ“œ](https://www.python.org/downloads/release/python-365) ν›„ μ„€μΉ˜
- ꡬ글 크둬 λΈŒλΌμš°μ € - [λ‹€μš΄λ‘œλ“œ](https://www.google.com/intl/ko/chrome) ν›„ μ„€μΉ˜
- 크둬 λ“œλΌμ΄λ²„ - [λ‹€μš΄λ‘œλ“œ](https://sites.google.com/a/chromium.org/chromedriver/downloads)

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

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

`Clone or download` λ²„νŠΌμ„ 눌러 ZIP 파일둜 μ†ŒμŠ€μ½”λ“œλ₯Ό λ‹€μš΄λ‘œλ“œ λ°›μŠ΅λ‹ˆλ‹€.
- λ‹€μš΄λ‘œλ“œ 받은 ν›„ 압좕을 ν’€μ–΄μ£Όμ„Έμš”

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

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

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

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

[크둬 λ“œλΌμ΄λ²„ λ‹€μš΄λ‘œλ“œ](https://chromedriver.chromium.org/downloads) νŽ˜μ΄μ§€μ— μ ‘μ†ν•˜μ—¬ `3번` κ³Όμ •μ—μ„œ λ©”λͺ¨ν•œ 버전과 μΌμΉ˜ν•˜λŠ” λ“œλΌμ΄λ²„λ₯Ό λ‹€μš΄λ‘œλ“œ λ°›μŠ΅λ‹ˆλ‹€.

컴퓨터 μš΄μ˜μ²΄μ œμ— λ§žλŠ” 버전을 λ‹€μš΄λ‘œλ“œ λ°›κ³  압좕을 ν’€μ–΄μ€λ‹ˆλ‹€.
- μ••μΆ• ν•΄μ œ ν›„ λ‚˜μ˜¨ νŒŒμΌμ€ driver 폴더에 λ„£μ–΄μ£Όμ„Έμš”

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

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

- [파이썬](https://www.python.org/downloads/release/python-365)이 μ„€μΉ˜λ˜μ–΄ μžˆμ–΄μ•Ό ν•©λ‹ˆλ‹€!

```bash
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. μ‹€ν–‰

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

```bash
python3 bot.py
```

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

## PyInstaller λΉŒλ“œ

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

```bash
# 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`: μ˜΅μ…˜ μ‚¬μš© λΆˆκ°€, (λ©€ν‹° ν”„λ‘œμ„Έμ‹± κ΄€λ ¨ λ¬Έμ œκ°€ λ°œμƒ.. ν•΄κ²°ν•˜κΈ° μœ„ν•΄ λ…Έλ ₯ν–ˆμœΌλ‚˜ λ¬Έμ œμ μ„ μ°Ύμ§€ λͺ»ν•¨)

## 이슈
μ‚¬μš© 쀑 λ¬Έμ œκ°€ λ°œμƒν•  경우 [이슈](https://github.com/leegeunhyeok/cyworld-bot/issues) λ‚¨κ²¨μ£Όμ„Έμš” 😊

## 개발자
[Geunhyeok LEE](https://github.com/leegeunhyeok)