목록Web Scraping (7)
Koo's.Co
이전 글에서 하위 카테고리 목록과 해당하는 url을 얻는 과정까지 했다. 오늘은 해당 하위 카테고리 페이지를 크롤링하고 물품에 대한 정보를 얻으려 한다. https://store.musinsa.com/app/items/lists/001001 https://store.musinsa.com/app/items/lists/001003 https://store.musinsa.com/app/items/lists/001010 저번에 얻은 하위 카테고리 리스트는 첫 번째 항목으로 하위 url을, 두 번째 항목으로 카테고리의 이름을 저장하고 있다. 'https://store.musinsa.com' + '/app/items/lists/001001' 과 같은 형식으로 하위 카테고리의 전체 url을 얻을 수 있다. sub_c..
이전 글에서 무신사 스토어 상품의 상위 카테고리를 갖고 왔다. 이번에는 상위 카테고리 밑에 있는 하위 카테고리 정보를 가져오려 한다. 하위 카테고리는 상위 카테고리 밑에 있는 카테고리를 말한다. 하위 카테고리들은 공통적으로 형식의 a태그로 구성되어 있다. 하지만 상위 카테고리를 입력받았을 때 해당하는 하위 카테고리만 출력하려고 한다. 페이지 소스를 보면 다음과 같은 규칙을 갖고 있다. 인기 "반팔 티셔츠" "셔츠/블라우스" 상위 카테고리를 감싸는 strong tag의 부모는 1) a태그이고 a태그의 부모는 2) div class="nav_menu_title~~이다. 하위 카테고리를 감싸는 div 태그는 2) div 태그와 형제이면서 3) div class="nav_category 의 자식이다. 그러므로 ..
무신사에서 상위 카테고리와 하위 카테고리를 입력하면 해당 카테고리에 있는 인기 상품 정보를 받아올 수 있는 프로그램을 만들어 보려 한다. from bs4 import BeautifulSoup from urllib.request import urlopen main_url = urlopen('https://store.musinsa.com/app/') _main_page = BeautifulSoup(main_url, 'html.parser') BeautifulSoup와 urllib 라이브러리를 이용해 웹페이지의 정보를 갖고 온다. 웹페이지는 무신사 스토어의 메인 화면을 갖고 온다. 갖고 오려는 상위 카테고리는 위와 같은 항목들이다. 페이지 소스를 확인하면 해당 카테고리들은 공통적으로 다음 태그로 구성되어 있다..
1. Access Token 저번에 만든 Twitter 트위터 애플리케이션에 들어가서 Access Token을 발급받는다. 저번에 발급받은 키처럼 Secret Access Token은 외부에 노출되어선 안된다. 노출될 경우 Regenerate을 눌러 다시 발급받자 2. Twitter API를 이용해 Twitter에 글 남기기 1) 쓰기 권한 변경 저번에 만든 프로젝트에서 쓰기 권한을 활성화시켜 주어야 한다. 개발자 홈페이지 > Project > Settings > App permissions 으로 들어간다 Read and Write 또는 Read + Write + Direct Messages로 바꾸어 준다(쓰기 권한이 필요) 2) Token과 key 재발급 앱 권한을 변경한 다음에는 Token과 key를..
크롤링을 하다보면 페이지나 url이 존재하지 않거나 서버가 존재하지 않는 상황이 많이 생긴다. 이때 미리 예외처리를 해놓지 않으면 오랜 시간 프로그램을 돌리고 원하는 결과를 얻지 못할 수 있다. 다음과 같은 문제가 발생할 수 있다. 1) 페이지를 찾지 못하는 경우와 2) 태그가 없는 경우, 3) 서버를 찾지 못하는 경우이다. 1) HTTPError HTTPError는 서버에 접속은 성공했으나 해당 페이지를 찾지 못할 때 발생한다 from urllib.request import urlopen from urllib.request import HTTPError from bs4 import BeautifulSoup try: page = urlopen('https://koosco.tistory.com/error...
1. Twitter 대중적인 sns 중 하나인 트위터 API를 이용해 크롤링해 보려 한다. 트위터는 한국에서는 대중적인 sns는 아니므로 트위터에서의 정보를 직접 활용하기보다는 API를 어떻게 이용하고 크롤링할 수 있는지에 대해 공부해보려 한다. 2. Twitter API twython, twitter 이외에도 여러 트위터 관련 라이브러리가 있지만 twitter 라이브러리를 이용할 것이다. 먼저 서드파티 라이브러리이므로 추가적인 설치가 필요하다. pip install twitter 트위터 API는 15분간 15번 호출이 가능하며 전체 데이터가 아닌 일부 데이터만 사용가능하다는 제한이 있다. 별도로 프리미엄API를 판매하고 있다. 여기서는 이용하는 방법이 중점이므로 생략.. 3. Twitter Key 1)..
Beautifulsoup와 urllib 모듈을 이용해 'https://www.house.gov/representatives' 홈페이지에 있는 주소를 저장해 보자 1. 페이지의 HTML 콘텐츠 획득 HTML 문서를 불러오고 파싱을 하기 위해, urllib와 bs4 모듈을 import 한다 urlopen을 이용해 HTML 문서 내용을 불러오고 BeautifulSoup 객체를 생성한다 from bs4 import BeautifulSoup from urllib.request import urlopen url = urlopen('https://www.house.gov/representatives') bsObj = BeautifulSoup(url.read(), 'html.parser') 2. 링크의 추출 all_u..