본문 바로가기

~ 공부 ~/Computer

아 윈도우 부셔버려야 겠.... konlpy, nltk, 언리얼엔진, 스크래피(scrapy)

.

.

.

.

.

.

.

 .....네요 라고 말할수 있음 좋겠지만...  제 소지품중 가장 비싸서 그럴수가 없네요. 전 제 물품을 사랑합니다ㅋㅋㅋ   그나저나 진짜 맥을 사야겠다는 생각을 많이한 하루였네요. 파이썬 하면서 무슨 이런 시부럴 다운 받아야 할게 많습니까? 이제 .whl 파일 받는건 일상사고 32bit니 64bit니 64bit은 지원안된다 뭐다뭐다. 깔끔하게 pip install로 안됩니까 ㅠ.ㅠ 


  일단 시간 순으로 가자면 정말 마구잡이식? 공부가 진행중인데요. 어떻게 잘 찾아보니 언리얼도 무료로 들을수 있는 기회가 되서 언리얼도 듣고 있습니다. 금욜 하루 들었네요. W,A,S,D나 Q,E 나 F나 뭐 움직이는건 꽤 적응했고 제가 가장 기대했던 블루프린트는 짱인것 같네요. 아직 레벨 블루 프린트에서 print 만 해봐서 함수들이나 다른건 어떻게 될지 모르겠지만 좀만 해봐도 대충 어떻게 흘러갈지 보이긴 하네요. 정말 짱! 좋은것 같습니다. 제가 원하던 비쥬얼 프로그래밍!!  일단 노드로(화살표) 움직여서 박스들 서로 연결하고요 형변환도 명시적(?)으로 알려주고 아주 좋았습니다. 아마 나중에 함수들이나 뭐 할떄도 인자들의 형이 안맞는다거나 하면 알려주고 바꾸고 뭐 좋을것 같습니다. 제가 원하는 비쥬얼 프로그래밍에서 얼마나 잘 되있을지 차차 공부 해봐야겠네요. 사실 없으면 제가 나중에 만들고 싶습니다. ㅎㅎㅎ   IDE개발!! 은 뭐 꿈같은 얘기고요. 다음 얘기로 넘어가서..


  스크래피를 제 AWS서버에서 똑같이 환경만들고 하는데서 잘 됬고요. 좀더 해봐서 pymongo를 깔고 해서 스크래핑한 데이터들을 몽고에다가 저장 하는걸 해봤습니다. 여기서 삽질을 어마어마하게 한거 같은데 원래 미티어로 개발 할떄는 알아서 insert나 뭐나 그냥 자동으로 되는줄 알고 있었고 AWS에서 할떄는 sudo service mongod start 같은걸로 띄어준다음에 연결시킨다 이렇게 알고 있었습니다. 근데 이거 할떄는 계속 localhost:27017가 응답을 안한다는 겁니다..   알고보면 제가 일일이 몽고 디비를 열어줘야 했던겁니다..(이것도 다 service monogd start만 있고 해서 여기저기 찾아서 몽고쉘 여는거 했었네요.. 제컴터는 또 경로가 좀 이상해서)  그래서 몽고디비 경로에 가서 프롬프트로 하나 키고 스크래핑 하니까 됬습니다. 일단 여기까지 하면서 몽고디비에 대해서 많이 알게 된것 같네요. 그냥 여러 명령어들 말고 세팅할때요..  

  •  show dbs를 해서 어떤 이름의 디비들이 있낭 보고
  • use <디비이름> 으로 해서 하나 정하고    (use local  /   use local   / use meteor  등등요)
  • show collections 로 콜렉션들 확인하고
이렇게 쉬운데 말이죠... 저번에 AWS에서 디비 이름 모른다고 찡찡 댔는데 요번에야 좀 확실히 안거 같습니다. 이게 pymongo 설정 하는거 보면
        client = pymongo.MongoClient('localhost',3001)     (어떤 포트의 몽고에 연결할지 설정)
        db = client.meteor                                           (그 몽고의 어떤 디비에 연결할지)
        self.collection = db.techcrunch                            (또 그 몽고의 어떤 디비의 어떤 콜렉션에 다가 할지)
이걸로 삽질 하다 보니까 좀 명확히 안것 같네요.
  일단 몽고 연결하고는 보시다시피 미티어와 연결을 하려고 했습니다. 원래 생각으로는 미티어에서 쓰던 몽고는 계속 쓰고 meteor 디비 외에 다른 디비에 저장되있는걸 붙이려고 했으나...(최대한 분리하는게 좋은것 같에서요. microservice를 생각해봤을때나 아예 장고서버로 모아논 데이터를 쓴다고 했을땡) 뭔가 좀 어려워 보이고 oplog도 된다는거 같긴한데 그럴 필요가 딱히 없는거 같에서 그냥 스크래핑한 데이터들을 미티어 몽고의 콜렉션으로 만들어서 했씁니다. 그러면 바로바로 그냥 pub/sub으로 되더라고요. 그래서 스크래핑 해서 추가되거나 하면 제 사이트에서도 바로바로 실시간으로 볼수 있었습니다(pub/sub으로 해서 그렇습니다)
  마지막으로 가장 중요한 기능이라고 할 수 있는 링크 건너 다니면서 스크래핑 하는거 하려고 했는데.... 결국 실패 했습니다. 스파이더를 Crawlspider로 썼고 잘 되는거 같은데 rule 부분에서 어떻게 해도 안되는겁니다... 정규표현식을 잘못 썼는지 뭘 잘못했는지... parse도 안쓰고 다른거 쓰고 정규표현식도 막 되도 않을거 같은것도 해봤는데 실패해썽요...  그래서 그냥 start_url에다가 techcrunch/page/1   techcrunch/page/2   techcrunch/page/3   이런식으로 했네요. 이렇게 제가 확실히 URL을 알아낼수 있는거면 쉬운데 동적인 사이트라면 백퍼 phantomjs 하고 selenium써서 해야될텐데 말이죠.(아 이거 두개 설치는 잘 됬고 테스트하니까 되더라고요. 근데 selenium으로 일일이 버튼 찾고 이런걸 해야 되는건가요? 엄청 귀찮을거 같은데..)  하여튼 여기까지 했으면 어느정도 만족해서 gg쳤습니다(ㅠ.ㅠ 굴욕적이네요.  차라리 제가 코드로 짜면 할수 있을거 같은데 문서대로 하려니까 안되네요... )

  갑자기 뜬금포로 웹 크롤링하다가 gg를 치고 갑자기 해야될게 생각이 안나는겁니다. ㅎㅎ  그러다가 맨 처음 하려고한 konlpy, nltk를 해보고 있습니다(현재 진행형입니다...) 사실 윈도우 부셔 버리겠다고 한거는 이것 때문이네요. 저번에 제가 설치 다 잘됬다고 했는데 사실 그떄 다 잘 됬습니다. 근데 제가 컴터 용량이 없어서 아나콘다 지우고 막 다 비우고 머 한게 발단이 됬네요.... 이것 떄문에 본의 아니게 또 삽질을...    파이썬을 실행하면 파이썬이 뻑이 나는겁니다.. 일단 이유부터 말하면 원래 가상환경(virtualenv)를 생성할떄는 아나콘다로 되있었던 것들이(경로가 거기를 보고있죠) 아나콘다를 지우니까 경로대서 찾아갔더니 아무것도 없는 상황이 되버린겁니다... 그래서 pyvenv.cfg 파일에서 경로를 바꿔줬습니다. 3.5로 그랬떠니.... 또 뻑이 납니다. 이건 정확하진 않지만 아마 pip install 했던 파일들 중에서 bit수가 안맞는게 있었던거 같습니다.  이게 또 골떄리는게 저번에 파이썬 깔때 공식사이트 대로 다운 받았는데(여태까지 64bit 인줄 알았습니다) 32bit를 받았던겁니다ㄷㄷㄷㄷ   사실 그전부터 .whl 파일들 받을때 저는 64bit 인줄알고  win-amd64 같은것들 64bit로 다운받았다가 플랫폼이 안 맞는다면서 빨간색줄로 내뱉어서 "내가 모르는 뭔가가 있나?" 라고 생각하면서 win32들을 받았고 어떻게 잘 됬습니다..(이것도 신기하네요 왜 된거냐 그전에는. 32에서 64는 안되도 64에서 32bit는 돌아간다고 쳐도 좀 알려주지 ㅠ.ㅠ) 하여튼 이것때문에 그랬고요.  konlpy다운 받을때 JAVA_HOME 하는게 잘 했는데 이상하게 왜 계속 해도 안되지 하고 있었는데 그냥 프롬프트 껐다 키니까 잘 되더라고요. 하여튼 윈도우만 특별(?) 하게 절차가 무조건 복잡 합니다...

  하여튼 제가 나중에 뭔가 만들어서 배포를 한다면(어렵겠죠...) 도큐먼트는 기가차게 쓸수 있을거 같습니다. 메소드 하나하나 자세하게 여러 예시들과 함께 말이죠.  그럼 저는 다시 한 konlpy, nltk 하러.... ㄱㄱ