반응형

안녕하세요, 왕초보 코린이를 위한 코딩유치원에 오신 것을 환영합니다.

코딩유치원에서는 파이썬 기초부터 사무자동화, 웹크롤링, 데이터 분석, 머신러닝 등의 다양한 패키지까지 초보자도 알기 쉽도록 내용을 정리해 놓았습니다.

업무는 물론 투자에도 도움이 될만한 전자공시시스템(DART) 텔레그램(Telegram) 관련 패키지도 배울 수 있으니 많은 관심 부탁드립니다.

 

 

 

[웹 크롤링 기초]

2021.03.22 - [파이썬 패키지/웹 크롤링] - [Python/웹 크롤링] 파이썬 웹 크롤링 기초 of 기초

2021.03.23 - [파이썬 패키지/웹 크롤링] - [Python/웹 크롤링] 크롬드라이버 크롬 버전에 맞춰서 설치하는법

2021.03.24 - [파이썬 패키지/웹 크롤링] - [Python/웹 크롤링] 파이썬 웹 크롤링 관련 패키지 3종 총정리

2021.03.27 - [파이썬 패키지/웹 크롤링] - [Python/웹 크롤링] 파이썬 웹 크롤링을 위한 속성 HTML, CSS 요약 정리

2021.03.28 - [파이썬 패키지/웹 크롤링] - [Python/웹 크롤링] 동적/정적 페이지 차이와 그에 따른 크롤링 방법 간단정리

 

[정적 웹크롤링]

2021.03.30 - [파이썬 패키지/웹 크롤링] - [Python/웹 크롤링] 파이썬 웹 크롤링 정적 수집 방법 개념 정리_find, find_all, select, select_one

2021.04.02 - [파이썬 패키지/웹 크롤링] - [Python/Requests/Beautifulsoup] 네이버 뉴스 기사 제목 크롤링을 통한 정적 수집 기초 정리

2021.04.06 - [파이썬 패키지/웹 크롤링] - [Python/Reuqests/Beautifulsoup] 파이썬 정적 웹크롤링 텍스트, 이미지, 하이퍼링크, 속성 가져오는 법

 

[동적 웹크롤링]

2021.04.03 - [분류 전체보기] - [코딩유치원] 네이버 뉴스 기사 제목 크롤링을 통한 동적 수집 기초 정리(selenium, beautifulsoup)

2021.06.21 - [파이썬 패키지/웹 크롤링] - [Python/Selenium] 파이썬 동적 웹크롤링 텍스트, 하이퍼링크, 이미지, 속성 가져오는 법

2021.05.22 - [파이썬 패키지/GUI 프로그램] - [파이썬 GUI 프로그래밍] 잡플래닛 리뷰 정보 크롤링 GUI 프로그램

 


 

 

오늘은 아주 짧게, 웹크롤링 할 때 원하는 정보의 형태에 따라서 어떻게 가져올 수 있는지 알아보겠습니다.

 

<이 글을 읽기 전에 읽으면 좋은 글>

2021.03.30 - [파이썬 패키지/웹크롤링] - [코딩유치원] 파이썬 웹 크롤링 정적 수집 방법 개념 정리_find, find_all, select, select_one

2021.04.02 - [파이썬 패키지/웹크롤링] - [코딩유치원] 네이버 뉴스 기사 제목 크롤링을 통한 정적 수집 기초 정리(beautifulsoup, requests)

 

선택자와 select(), select_one() 함수에 대해서 아시고, Reuqests, beautifulsoup를 이용한 정적수집에 대해서 아신다면 가져온 html에서 원하는 정보를 추출하는 함수가 필요합니다.

 

<참고> select 함수 사용법

# 선택자를 사용하는 방법 (copy selector)
soup.select('태그명')
soup.select('.클래스명')
soup.select('#아이디명')
 
soup.select('상위태그명 > 하위태그명 > 하위태그명')
soup.select('상위태그명.클래스명 > 하위태그명.클래스명')
 
# 태그와 속성값으로 찾는 방법
soup.select('태그명[속성="값"]')
 
# 한 개만 가져오고 싶은 경우
soup.select_one('태그명[속성="값"]')

 

텍스트 추출  get_text( )

 

우리는 예전에 select( ) 함수를 이용해 추출한 html 문장(?)들이 titles라는 리스트에 담겨있다고 했을 때, 그 각 html 문장 안에 들어있는 텍스트를 아래와 같은 방식으로 추출했었죠. 이건 이미 다루었던 내용이라서 넘어가겠습니다.

for i in titles:
    title = i.get_text()
    print(title)

 

이미지 추출  get('src' ) or ['src']

크롬의 개발자 도구(단축키 F12)를 통해 이미지를 찍어보면 보통 아래와 같은 html 구조를 가지고 있습니다. 

 

위의 사진과 같은 img 태그는 어떻게 원하는 사진을 가져올 수 있을까요?

 

1) 우선 select('img._image._listImage')로 여러개의 html을 가져옵니다. 만약 한 페이지 내에서 <img> 태그가 한 종류만 존재한다면 그냥 select('img')로 해도 되겠죠?

 

2) 그 다음 for문을 이용해서 아래와 같이 src를 가져옵니다. 둘 중 하나만 골라서 사용하세요.

for i in imgs:
    src = i['src']
    src = i.get('src')

 

3) src는 한마디로 '이미지 주소를 담은 링크'입니다. 이것을 다운로드 받아서 내 PC에 저장하기 위해서는 추가적인 작업이 필요합니다. 이 부분은 일단 링크로 대신하고 추후 정리하도록 하겠습니다.

 

m.blog.naver.com/PostView.nhn?blogId=kiddwannabe&logNo=221358581642&proxyReferer=https:%2F%2Fwww.google.co.kr%2F

 

웹크롤링)이미지/동영상 자료 다운받기

크롤링 진행시, 이미지나 동영상을 저장하고 싶을때가 있죠. 예를들면.. .인스타그램 크롤링을 진행할때, ...

blog.naver.com

 

href 추출  get('href' ) or ['href']

링크를 가져오고 싶을 때, href를 추출합니다. 생각해보니 아래의 프로젝트를 할 때 사용한 적이 있네요.

 

2021.04.05 - [파이썬 프로젝트] - [파이썬 프로젝트] 원하는 주제의 네이버 뉴스 텔레그램으로 5분마다 전송 받기

for i in hrefs:
    i.['href']
    i.get('href')

 

 

<2021.06.22 정정>

 

아래의 내용은 selenium 패키지를 이용한 함수입니다. 

 

2021.06.21 - [파이썬 패키지/웹 크롤링] - [Python/Selenium] 파이썬 동적 웹크롤링 텍스트, 하이퍼링크, 이미지, 속성 가져오는 법

 

속성(attribute) 추출 get_attribute('속성 종류')

이건 자주 사용하진 않는데 가끔 속성을 가져와야할 때가 있습니다. 예를 들면 제가 잡플래닛 평점을 크롤링 할 때, 별점을 아래와 같이 style 속성으로 정의하더군요. 여기에 width: 68%를 속성 추출을 이용해서 받아와서 5점 만점의 별점으로 재가공 했던 적이 있습니다.

i.get_attribute('style')

 


 

반응형

+ Recent posts