반응형
SMALL
■ Python 의 웹크롤링 라이브러리 Requests 와 BeatifulSoup 기본 사용법
- 본 예제는 주피터 노트북을 사용함
■ Requests
반응형
1. pip install 을 통해 Requests 설치 및 임포트
# 설치
pip install requests
# 임포트
import requests
2. header 선언 및 user-agent 값 넣어주기
- 웹크롤링 전 웹페이지에게 내가 사람임을 알리는 용도
- 구글에 my user agent 검색
headers = {"User-Agent" : "Mozilla/5.0 (Macintosh; Intel Mac OS X 10_15_7)
AppleWebKit/537.36 (KHTML, like Gecko) Chrome/124.0.0.0 Safari/537.36"}
3. test 용도 url 변수 생성 및 get 메서드 사용하기
- 아까 만든 header 를 넣어주고 r 이라는 변수에 return 값을 넣어준다
- r 의 상태코드를 출력해본다.
url = "https://www.transfermarkt.com/"
r = requests.get(url, headers=headers)
r.status_code
#OutPut
200 # 200은 통신 Ok 란 뜻
SMALL
■ BeautifulSoup
1. pip install 을 통해 BeautifulSoup 설치 및 임포트
pip install beautifulsoup4
from bs4 import BeautifulSoup
2. 사전 데이터 세팅 및 soup 변수에 parse 데이터 넣어주기
#사전데이터
html_doc = """<html><head><title>The Dormouse's story</title></head>
<body>
<p class="title"><b>The Dormouse's story</b></p>
<p class="story">Once upon a time there were three little sisters; and their names were
<a href="http://example.com/elsie" class="sister" id="link1">Elsie</a>,
<a href="http://example.com/lacie" class="sister" id="link2">Lacie</a> and
<a href="http://example.com/tillie" class="sister" id="link3">Tillie</a>;
and they lived at the bottom of a well.</p>
<p class="story">...</p>"""
# 값 대입
soup = BeautifulSoup(html_doc, 'html.parser')
■ 실습
• p 태그 요소 가져와보기
#input
soup.p # 방법 1
soup.find('p') #방법 2
#output
<p class="title"><b>The Dormouse's story</b></p>
• a 태그 요소 가져와보기
- 맨 첫번째 요소를 가져옴
#input
soup.find('a')
#output
<a class="sister" href="http://example.com/elsie" id="link1">Elsie</a>
• a 태그 안에 요소 가져와보기
- 맨 첫번째 요소를 가져옴
#input
soup.find('a')['href']
soup.a['href']
#output
'http://example.com/elsie'
• a 태그 안에 텍스트 가져와보기
- 맨 첫번째 요소를 가져옴
#input
soup.find('a').text
soup.find('a').get_text()
#output
'Elsie'
• a 태그 모두 가져와보기
- 배열 형식으로 return 한다
#input
soup.find_all('a')
#output
[<a class="sister" href="http://example.com/elsie" id="link1">Elsie</a>,
<a class="sister" href="http://example.com/lacie" id="link2">Lacie</a>,
<a class="sister" href="http://example.com/tillie" id="link3">Tillie</a>]
• a 태그 특정 배열 가져와보기
- 뒤에 인덱스를 지정해준다
#input
soup.find_all('a')[1]
#output
<a class="sister" href="http://example.com/lacie" id="link2">Lacie</a>
• a 태그 안에 값 취득
- for문을 통하여 요소의 값을 취득한다.
-- href 추출 --
#input
a_list = soup.find_all('a')
for item in a_list:
print(item['href'])
#output
http://example.com/elsie
http://example.com/lacie
http://example.com/tillie
-- text 추출 --
#input
a_list = soup.find_all('a')
for item in a_list:
print(item.get_text())
#output
Elsie
Lacie
Tillie
• a 태그의 class name 또는 id 로 값 추출
- args 또는 딕셔너리 형태로 값을 추출 할 수 있다.
-- 클래스로 추출 --
#input
soup.find_all('a', class_='sister')
soup.find_all('a', {'class' : 'sister'})
#output
[<a class="sister" href="http://example.com/elsie" id="link1">Elsie</a>,
<a class="sister" href="http://example.com/lacie" id="link2">Lacie</a>,
<a class="sister" href="http://example.com/tillie" id="link3">Tillie</a>]
-- id 로 추출 --
#input
soup.find_all('a', id='link3')
soup.find_all('a', {'id' : 'link3'})
#output
[<a class="sister" href="http://example.com/tillie" id="link3">Tillie</a>]
LIST
'Programming > python' 카테고리의 다른 글
[ Python ] 불러온 데이터 csv 로 임포트 해보기 (0) | 2024.05.19 |
---|---|
[ Python ] requests, beautifulSoup 을 통하여 웹 크롤링 해보기 (0) | 2024.05.16 |
[ python ] pandas 에서 apply 함수 (0) | 2024.05.11 |
[ Python ] pandas 자주 쓰는 함수 (0) | 2024.05.10 |
[ Python ] pandas loc, iloc, indexing (0) | 2024.05.06 |