고려대학교 컴퓨터정보통신대학원 :: 2017 빅데이터 응용 세미나1
인스타그램 이미지&해쉬태그 데이터 기반 감성분석
python 3
virtualenv
mongoDB 3.4.3
npm
phantomjs
requests>=2.13.0
selenium>=3.4.0
pymongo>=3.5.1
asyncio==3.4.3
Mac환경에서는 먼저 아래의 brew 인스톨 커맨드를 통해서 selenium
과 geckodriver
라는 Gecko-based WebDriver 클라이언트를 설치한다.
$ brew install selenium
$ brew install geckodriver
v 1.0.0
- [start] app initiated
- [update] facebook crawling added
$ virtualenv -p python3 {YOUR APP NAME}
$ source {YOUR APP NAME}/bin/activate
$ cd {YOUR APP NAME}
$ pip3 install -r requirements.txt
$ npm install --save phantomjs
or
$ npm install --save
- auth.json : place your instagram ID & password
- settings.json : mongoDB & PhantomJS path setting
- Environment Options:
- '-e', '--env'
- values: 'pro' | 'dev' | 'test'
- default: 'pro'
- Directory to save results:
- '-d', '--dir_prefix'
- default: './data/'
- Target to crawl, add '#' for hashtags:
- '-q', '--query'
- default: 'explore'
- Crawl Type Options:
- '-t', '--crawl_type'
- values: 'tags' | 'photos' | 'followers' | 'following'
- default: 'tags'
- Number of posts to download(integer):
- '-n', '--number'
- default: 0
- Add this flag to download caption when downloading photos:
- '-c', '--caption'
- If set, will use PhantomJS driver to run script as headless:
- '-l', '--headless'
- path to authentication json file:
- '-a', '--authentication'
- default: 'auth.json'
- path to setting json file:
- '-s', '--setting'
- default: 'settings.json'
Headless browser Phantom.JS 사용 명령어
$ python3 crawlbot.py -n {Post_Number} -e {Environment} -l
파이어폭스 브라우져 사용 명령어
$ python3 crawlbot.py -n {Post_Number} -e {Environment}
헤쉬태그 사용 시 명령어
$ python3 crawlbot.py -n {Post_Number} -e {Environment} -t tags -q {Hashtag word}
$ mongoexport --db {DATABASE_NAME} --out {CSV_DEST_PATH}/explore-2017-09-28-Collection.csv --type=csv --collection {COLLECTION_NAME} --fields "_id,id,img,text,reg_date"
$ mongoexport --db {DATABASE_NAME} --out {CSV_DEST_PATH}/fb-explore-2017-09-28-Collection.csv --type=csv --collection {COLLECTION_NAME} --fields "_id,id,post_type,post_id,img,text,reg_date,write_utime,write_date"