반응형

Beautifulsoup 4

파이썬으로 HTML 파싱하기

웹페이지는 HTML로 작성이 되어있고, HTML은 element와 attribute로 구성되어 있다. HTML에서 ‘id가 foo인 요소에 포함되어 있는 텍스트를 가져와’라는 규칙으로 필요한 정보를 추출할 수 있다. 하지만 실제로 제대로 된 형태를 갖추지 못했기 때문에 HTML의 요소를 tree 형태로 변환해서 쉽게 접근이 가능하게 해주는 BeautifulSoup라이브러리를 사용하면 쉽다. 파이썬에서 HTML을 파싱하기 위해서는 BeautifulSoup, requests, html5lib이 필요하다. 파이썬에서 기본적으로 제공하는 라이브러리인 HTML parser는 완벽한 HTML 구조가 아니면 제대로 작동하지 않기 때문에 html5lib이 필요하다. $ pip install beautifulsoup4 ..

Programming/Python 2017.02.07

[데이터과학] 데이터 수집하는 방법 (예제: 오라일리의 데이터 관련 책) - 페이지 스크랩, 정책

오라일리 출판사 페이지 웹페이지를 분석해서 데이텀의 잠재적 투자자가 데이터 분석은 의미없는 유행에 불과하다는 생각이 틀리다는 것을 증명해보도록 하자. http://shop.oreilly.com/category/browse-subjects/data.do?sortby=publicationDate%page=1 의 주소를 확인해보면 페이지당 30권씩 책이 표시되고 있는것을 확인 할 수 있다. 악의적으로 사이트에 접속하는 것이 아니거나, 웹 스크래퍼가 차단당하는 것을 원치 않는다면 가장 먼저 사이트의 접근 정책을 확인해야 한다. http://oreilly.com/terms/ 크롤러(스크래퍼)가 어떻게 작동해야 하는지 규제하고 있는 robots.txt를 확인해보면 된다. Crawl-delay: 30 Request-..

Programming/Python 2017.02.07

[Python] BeautifulSoup UTF-8 설정 (Encoding, 한글 깨짐 현상)

BeautifulSoup UTF-8 설정 (Encoding, 한글 깨짐 현상)들어가며 저에게 진짜 파이썬을 하면서 가장 짜증날때가 언제니? 라고 하면 자신감있게 "이놈의 UTF-8 인코딩이다." 라고 말을 하고 싶을 정도로 화가 날때가 있습니다. 특히 다른언어를 접하다가 python을 접하면 가장 먼저 이해하기 어려운게 encoding인데요. 이번에도 beautifulsoup을 통해 웹페이지의 소스를 가져오는곳에서 인코딩 문제가 발생했습니다. 웹페이지의 content를 가져와서 화면에 뿌리면 평소에 보지 못한 피라미드에 적혀있을 법한 상형문자들이 보입니다. 그 애들이 무엇을 말하고 싶었는지 알기 위해서는 인코딩 설정이 필요합니다. 해결하는 방법은... 매우 간단합니다. 한줄도 아닌 1/3줄을 추가하시면 ..

Programming/Python 2016.04.20

[Python] Web 스크랩 및 파싱 :: BeautifulSoup 사용방법

Web 스크랩 및 파싱하기 :: BeautifulSoup 사용방법 들어가며 웹에서 페이지를 스크랩하는 방법에 대해서 설명하려고 합니다. 웹페이지를 스크랩한다는 말은 웹 페이지에서 [오른쪽 마우스 클릭] --> [소스보기] 에 있는 텍스트를 가져온다고 생각하시면 됩니다. 웹에 있는 페이지에 특정 단어나, 이미지의 url 등을 가져오고 싶은 경우가 있습니다. 일단 가져오기 전에 feasibility(가능성)를 따져본 후에, 가능 하다면 페이지의 소스코드를 가져오고, 일정 포맷에 있는 데이터를 가져오면 됩니다. 내가 원하는 페이지에 들어간다. [그림 1] 인터넷 페이지 오른쪽 마우스를 클릭한 후에 View Source를 누른다. (또는 페이지 소스보기) [그림 2] 인터넷 페이지 소스코드 구현하기 구현해야 하..

Programming/Python 2016.04.20
반응형