-
파이썬을 이용한 웹크롤링 연습computer_IT 2022. 6. 19. 20:25반응형
사이트 크롤링하기(CLI)
mkdir '폴더이름' cd '폴더이름' # 한빛미디어 도서목록 가져오기(다운로드) wget https://www.hanbit.co.kr/store/books/full_book_list.htm # 다른 파일로 저장할 경우(test.txt) wget https://www.hanbit.co.kr/store/books/full_book_list.htm -q -O test.txt # 원하는 텍스트만 추출 후 공백제거하기 cat full_book_list.html | grep '<a href="/store/books/look.php' |sed -E 's/<[^>]*>//g' | sed -E 's/^\s*//'
<결과>
가상환경 만들기
# 폴더이름이 scraping인 가상환경 생성 python3 -m venv scraping # 만들어진 가상환경 실행 . scraping/bin/activate # 가상환경 벗어나기 deactivate # 필요없는 가상환경은 해당폴더 지우면 된다.
가상환경에서 XML(RSS) 스크레핑하기
# 기상청 RSS 서울/경기 지역의 날씨 데이터 받기 wget https://www.kma.go.kr/weather//forecast/mid-term-rss3.jsp?stnId=109 -q -O rss.xml
scrape_rss.py 파일(http://wikibook.co.kr/python-for-web-scraping/ 에서 다운로드)
# ElementTree 모듈을 읽어 들입니다. from xml.etree import ElementTree # parse() 함수로 파일을 읽어 들이고 ElementTree 객체를 만듭니다. tree = ElementTree.parse('rss.xml') # getroot() 메서드로 XML의 루트 요소를 추출합니다. root = tree.getroot() # findall() 메서드로 요소 목록을 추출합니다. # 태그를 찾습니다(자세한 내용은 RSS를 열어 참고해주세요). for item in root.findall('channel/item/description/body/location/data'): # find() 메서드로 요소를 찾고 text 속성으로 값을 추출합니다. tm_ef = item.find('tmEf').text tmn = item.find('tmn').text tmx = item.find('tmx').text wf = item.find('wf').text print(tm_ef, tmn, tmx, wf) # 출력합니다.
파일 실행
python scrape_rss.py
실행결과
출력 내용을 엑셀파일로 저장하고 싶을 때는 다음과 같이 한다.
python scrape_rss.py > scrape_rss.csv
반응형'computer_IT' 카테고리의 다른 글
넥사크로 한 개 컬럼에 여러 체크박스 바인딩하기 스크립트 (0) 2022.06.30 타임존 변경, 서버 실행환경, Cron 설정 (0) 2022.06.25 유튜브 영상 무료 다운로드하는 법(윈도우 기준) (0) 2022.06.18 구글스프레드시트를 이용한 유용한 주식정보 가져오기 (3) 2020.12.23 구글 스프레드시트를 이용한 주식 정보 수익률관리 파일 (0) 2020.12.23