본문 바로가기

태그

[웹크롤링] 동일한 이름의 여러 태그 중 두 번째 태그 찾는 방법 웹 크롤링을 할 때, 특정한 텍스트 또는 이미지를 크롤링할 때, 가장 하위에 있는 태그를 보면 class 이름이 없거나, 다른 데이터와 같은 이름의 class가 있어서 특정한 태그를 찾기 어려울 수 있습니다. 만약 아래 이미지와 같이 상위태그 이름이 , 클래스 이름이 'list_news' 인 태그 아래 하위 태그인 태그에서 두 번째에 있는 태그를 크롤링하고 싶다면 어떻게 해야할까요? 만약 두 번째 태그를 크롤링하고 싶다면 우선 상위 태그인 태그를 추출해야 합니다. text1 = soup.find_all('ul', 'list_news') 위와 같이 입력하면 text1 에는 모든 태그에 대한 내용이 담겨 있는데요, 두 번째 태그만 추출하기 위해 for문을 사용하면 된답니다. 아래 코드를 보도록 하겠습니다. .. 더보기
[웹크롤링] 네이버 - 연관 검색어 크롤링하기 (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.. 더보기
[웹크롤링] 자주 사용되는 select 함수 5가지 - 코드 입력 형식 select함수는 find() 함수와 find_all 함수와는 다르게 여러 기능들을 사용할 수 있는데요, 주로 사용되는 코드 입력 방식에 대해 설명드리도록 하겠습니다. 1. 태그 이름 먼저 첫 번째로, select 함수는 원하는 태그를 찾을 때 많이 사용됩니다. 태그 이름으로 요소를 찾을 때 아래와 같이 입력하면 됩니다. soup.select('태그 이름') 위 코드에서 soup 는 soup = BeautifulSoup(html, 'html.parser') 로 설정된 변수입니다. 한편, 태그를 찾기 위해서 select() 함수 안에 '태그 이름' 을 입력하면 해당 요소가 선택됩니다. 2. 클래스 이름 두 번째로, select() 함수를 이용하여 클래스 이름을 찾는 코드는 다음과 같습니다. soup.sel.. 더보기
[웹크롤링] 원하는 태그 찾기 + 텍스트 추출 - find 웹 크롤링을 할 때, 가장 많이 사용하는 함수 중 하나가 바로 find() 함수인데요, 아래 코드를 보면서 find() 함수에 대해 살펴보도록 하겠습니다. 1. find() : 태그 찾기 먼저, 아래와 같은 html이 있다고 가정해보겠습니다. html1=''' hello! ''' 위 html에서 만약 'hello!' 라는 텍스트를 찾고 싶을 때, 이 텍스트가 있는 태그를 알아야 하는데요, 해당 텍스트는 태그에 있는 것을 알 수 있습니다. 이제 이 텍스트를 찾기 위해 find() 함수를 사용하면 되는데요, find 함수 안에 해당 태그 명을 입력하면 됩니다. soup = BeautifulSoup(html1, 'html.parser') #html.parser는 html 분석 도구 soup.find('div'.. 더보기
[웹크롤링] 특정 element 접근하는 코드 6가지 + 클릭하는 방법 웹크롤링을 할 때, 특정 버튼을 클릭하거나 특정 element에 접근할 때 사용할 수 있는 방법이 크게 6가지가 있는데요, 하나씩 살펴보도록 하겠습니다. - find_element_by_ : 특정 element에 접근하기 특정 element에 접근하기 위한 방법으로 'html name', 'id name', 'xpath', 'css', 'class name', 'tag name'을 사용하는 방법이 있는데요, 특정 element에 접근하는 코드인 find_element_by_ 와 결합해 사용하면 됩니다. 결합한 코드는 다음과 같습니다. 1. html name 사용 find_element_by_name('html name') 2. id name 사용 find_element_by_id("html id name.. 더보기