본문 바로가기

Computer/Python

[BeautifulSoup]BeautifulSoup에서 UnicodeEncodeError날 때 BeautifulSoup으로 작업하다가 다음과 같은 애러를 만났다. \xa0 을 처리할 수 없다는 말인데 뭐지 하다가 구글링 시작 ASCII로 \xa0가 non-breaking space(참고: http://en.wikipedia.org/wiki/Non-breaking_space) 라고 한다. 즉 문장이 안 끝났으니 기다려봐~이쯤 되는데 BS가 이걸 처리하지 못한 것이다. 이는 다음과 같이 replace 와 strip으로 해결해주면 깔끔해진다. d.text.replace(u'\xa0', u' ').strip() 더보기
크롤러를 만들어봅시다 (1) - Scrapy 설치와 설정 연구 목적으로 데이터를 얻고 싶으나 실제 기업의 데이터나 사내 데이터의 경우 많은 제약사항으로 연구에 사용되지 못하는 경우가 태반이다. 그래서 웹에 존재하는 데이터를 긁어 데이터셋을 만드는 것을 웹 크롤링이라고 한다. 웹 크롤링을 하는 방법은 여러 가지가 있으나, 여기에선 Python과 Scrapy를 이용한 크롤러를 제작해보도록 하겠다. 모든 설치 과정은 windows 기준이다. WARNING: 크롤링을 하는 데에 대한 모든 책임은, 크롤러를 실행하는 당사자에게 있음을 밝힌다. Python 은 편리하고 쉬운 스크립트 언어로 널리 사용되고 있는데, 유독 Python을 사용한 크롤러 모듈들이 많이 개발되어 있다. 그 중 Scrapy는 간단하게!(물론 열심히 공부한 이에게) 크롤링을 할 수 있게 도와준다. 우.. 더보기
[Scrapy] start_url 부터 긁어야 할 때 scrapy 를 사용할 때, start_url에도 긁어야 할 내용이 있는 경우엔 parse_start_url을 오버라이드 해야한다. 기본적으로 start_url은 Rule을 적용하지 않는데, 이 함수를 재정의함으로 첫 페이지부터 크롤링이 시작되도록 한다. spider 의 class 안에 다음과 같이 넣어주면 된다. def parse_start_url(self, response): return self.parse_item(response) 더보기
Eclipse 로 Python 개발하기 - PyDev Python 을 쓰기 위해, 다양한 IDE들이 존재하지만 딱히 맘에 드는 것을 발견하지 못하여, 가장 익숙한 Eclipse에서 하기로 작정. 우선 Python을 받아야한다. 다운로드는 여기에서 www.python.org/downloads 여러가지 버전이 있는데 가장 많이 쓰이는 것은 2.7.X이다. 2.7 과 3.4 사이엔 꽤 많은 변화(문법적 변화 포함)가 있으므로 유의해서 사용해야 한다. 뭐 둘 다 배우겠다 하면 할 말은 없지만서도..받은 후 설치파일을 열어 next next next next하면 된다. 그런 다음 Eclipse 를 켜서, Help -> Install New Software 를 열면 다음과 같은 창이 나온다.Add를 누른 후, Name 에 아무 거나(PyDev가 무난하지만..), Lo.. 더보기