본문 바로가기

추출

[웹크롤링] 'title', 'src', 'href' 속성에 있는 텍스트 크롤링하기 웹 크롤링을 하다 보면, 'title', 'src', 'href' 속성에 있는 텍스트 또는 url을 크롤링해야 할 수 있는데요, 태그 이름 또는 클래스 이름으로 찾는 방법은 쉽지만 title, src, href과 같은 속성으로 텍스트를 추출하는 방법을 잘 모를 수 있습니다. 따라서 코드를 살펴보면서 크롤링하는 방법에 대해서 알아볼건데요, 예시로 아래 이미지처럼 네이버 뉴스 기사에서 '서울경제'라는 이미지가 있는 태그에서 '서울경제'라는 텍스트를 추출해보겠습니다. 오른쪽 태그를 더 자세히 보면, 라는 상위 태그 아래 태그에 'title'속성에 '서울경제'라는 텍스트가 적혀있는 것을 확인할 수 있습니다. 이제 이 텍스트를 크롤링하는 코드에 대해서 살펴보도록 하겠습니다. url = https://news.na.. 더보기
[웹크롤링] 동일한 이름의 여러 태그 중 두 번째 태그 찾는 방법 웹 크롤링을 할 때, 특정한 텍스트 또는 이미지를 크롤링할 때, 가장 하위에 있는 태그를 보면 class 이름이 없거나, 다른 데이터와 같은 이름의 class가 있어서 특정한 태그를 찾기 어려울 수 있습니다. 만약 아래 이미지와 같이 상위태그 이름이 , 클래스 이름이 'list_news' 인 태그 아래 하위 태그인 태그에서 두 번째에 있는 태그를 크롤링하고 싶다면 어떻게 해야할까요? 만약 두 번째 태그를 크롤링하고 싶다면 우선 상위 태그인 태그를 추출해야 합니다. text1 = soup.find_all('ul', 'list_news') 위와 같이 입력하면 text1 에는 모든 태그에 대한 내용이 담겨 있는데요, 두 번째 태그만 추출하기 위해 for문을 사용하면 된답니다. 아래 코드를 보도록 하겠습니다. .. 더보기
[웹크롤링] 이미지 크롤링해서 저장하는 방법 - urlib 이미지를 크롤링해서 저장하고 싶다면 urlib 이라는 라이브러리를 통해 이미지를 저장할 수 있습니다. 한편, 이미지는 주로 'src' 태그에 'https://링크~.jpg' 이런 식으로 텍스트로 되어 있는데요, 이 텍스트를 가져온 다음, urlib를 이용하여 폴더에 저장하면 된답니다. 그렇다면, 예시로, 네이버 웹툰 홈페이지에서 아래 이미지와 같이 웹툰의 섬네일을 저장하는 방법에 대해서 살펴보겠습니다. 1. 월요웹툰 페이지 본문 가져오기 이미지를 저장하기 앞서, 먼저 월요웹툰 페이지를 열고, 해당 페이지의 본문을 가져오는 코드를 작성하도록 하겠습니다. from bs4 import BeautifulSoup import requests import urllib.request import urllib url .. 더보기
[웹크롤링] 네이버 - 연관 검색어 크롤링하기 (requests 사용) 네이버에서 원하는 검색어를 입력하면 아래 이미지처럼 홈페이지 맨 하단에 연관 검색어가 나오는데요, 이 연관 검색어를 크롤링해서 저장하는 방법에 대해서 살펴보도록 하겠습니다. (requests를 사용한다는 가정하에 설명드리겠습니다. 크롬 드라이버를 사용한 방법은 다음 글에서 설명드리겠습니다.) 1. 필요한 라이브러리 import 하기 from bs4 import BeautifulSoup import requests 필요한 라이브러리로 BeautifulSoup, requests를 import 해주었습니다. 2. 키워드 입력받고 url, params 설정하기 keyword = input("연관검색어를 찾을 키워드를 입력하세요 : ") url = "https://search.naver.com/search.nav.. 더보기
[데이터분석] 데이터프레임 : 랜덤으로 행 복제하는 방법 - sample 이전 글에서는 sample() 함수를 이용하여 원하는 개수 또는 원하는 비율만큼 랜덤으로 행을 추출하는 것에 대해서 알아보았는데요, 이번에는 원하는 비율만큼 랜덤으로 행을 복제해서 나타내는 방법에 대해서 살펴보도록 하겠습니다. - sample(frac= ) : 랜덤으로 행 복제하기 sample(frac= ) 함수는 데이터프레임에서 원하는 비율만큼 랜덤으로 행을 추출하는 함수로, 예를 들어 df라는 이름의 데이터프레임에서 25%만 랜덤으로 추출해서 보고 싶으면 다음과 같이 입력하면 됩니다. df.sample(frac=0.25) 즉, 50%는 df.sample(frac = 0.5), 75%는 df.sample(frac = 0.75) 라고 입력하면 되는데요, 그렇다면 frac의 값이 1을 넘어가게 되면 어떻게.. 더보기
[데이터분석] 데이터프레임 : 랜덤으로 행 출력하기 (원하는 비율) - sample 데이터프레임을 다양하게 변경할 때, 변경되었는지 확인하기 위해 head() 함수 또는 tail() 함수를 주로 사용합니다. 하지만 head() 함수와 tail() 함수는 상단 또는 하단에 있는 행만 보이기 때문에 중간에 데이터가 어떠한지 모를 수 있습니다. 따라서 데이터를 무작위로 추출하려면 sample() 함수를 사용하는 것이 적절한데요, 아래 코드를 보면서 설명드리도록 하겠습니다. 1. sample(n = 개수) : '개수'만큼 무작위로 행 추출하기 만약 df라는 데이터프레임이 있을 때, 10개의 행만 랜덤으로 추출해서 보고 싶다면, 다음과 같이 코드를 입력하면 됩니다. df.sample(n=10) 2. sample(frac = 비율) : '비율'만큼 무작위로 행 추출하기 반면, 개수를 지정하는 것 .. 더보기
[데이터분석] 데이터프레임 : 특정 조건 만족하는 행 추출 & 해당 인덱스 반환 데이터 프레임으로 데이터 분석을 할 때, 특정 조건을 만족하는 행을 추출하거나, 조건을 만족하는 행의 인덱스 번호를 반환시킬 수 있는데요, 아래 코드를 보면서 설명하도록 하겠습니다. 1. 특정 조건 만족하는 행 추출하기 먼저, 아래와 같이 음료와 관련한 데이터프레임이 있다고 가정해보겠습니다. tempitemcountpricerating 0hotcoffee130004.5 1icejuice540003.0 2iceade250004.0 3hotmilk130002.5 4hottea340003.0 5icewater210004.5 만약 이 데이터 프레임에서 'price' 칼럼의 데이터가 4000 이상인 행만 추출해서 보고 싶다면 다음과 같이 코드를 입력하면 됩니다. df[df['price'] >= 4000] temp.. 더보기
[파이썬] 딕셔너리 : key / value 값만 추출하려면? 딕셔너리 데이터를 다루다 보면 key 값만 추출하거나, value 값만 추출해야 하는 경우가 있는데요, 이럴 때 코드를 어떻게 작성해야 하는지 알아보도록 하겠습니다. 1. keys 추출하기 key 값을 추출하기 위해선 .keys() 를 사용하면 되는데요, 아래와 같이 'price'라는 딕셔너리에서 key만 추출하려면 다음과 같이 코드를 작성해야 합니다. price = {'coffee' : 3000, 'juice' : 4000, 'tea' : 5000 } price.keys() dict_keys(['coffee', 'juice', 'tea']) 위와 같이 price.keys() 를 입력하면 그 결과로 ['coffee', 'juice', 'tea'] 가 잘 출력되는 것을 확인할 수 있습니다. 2. value.. 더보기