2022. 12. 6. 22:27ㆍ웹개발 메모장
3-6강 패키지 사용해 보기 (requests)
import requests # requests 라이브러리 설치 필요
r = requests.get('http://spartacodingclub.shop/sparta_api/seoulair')
rjson = r.json()
라이브러리마다 정리된 방식이 다르기때문에
검색하거나 그 사이트 가서 방식을 알아보고 적용해야 한다.
위 라이브러리는 requests 라이브러리이다.
3-7강 웹스크래핑 웹크롤링 해보기
크롤링, 파싱, 스크래핑
크롤링 - 웹 인덱싱을 위해 WWW를 체계적으로 탐색해나가는 것을 의미
파싱 - 웹 파싱은 웹 상의 자연어, 컴퓨터 언어 등의 일련의 문자열들을 분석하는 프로세스
어떤 데이터에서 내가 원하는 데이터만 추출해서 불러올 수 있게 하는것.
스크래핑 - 웹 스크래핑은 다양한 웹사이트로부터 데이터를 추출하는 기술을 의미
파이썬에서 가장 많이 사용되고 있는 패키지 request, beautifulsoup
Requests: HTTP 요청을 보낼 수 있도록 기능을 제공하는 라이브러리 입니다.
BeautifulSoup: 웹 페이지의 정보를 쉽게 스크랩할 수 있도록 기능을 제공하는 라이브러리입니다.
크롤링 기본 세팅
import requests
from bs4 import BeautifulSoup
headers = {'User-Agent' : 'Mozilla/5.0 (Windows NT 10.0; Win64; x64)AppleWebKit/537.36 (KHTML, like Gecko) Chrome/73.0.3683.86 Safari/537.36'}
data = requests.get('url',headers=headers)
soup = BeautifulSoup(data.text, 'html.parser')
# 코딩 시작
print(soup)
bs4 사용하는 방법
분석할 데이터에서 오른쪽 클릭 - 검사
엘리먼츠에서 파란네모 - copy - copy selector 클릭
저희 경우 영화랭킹 1위인 올빼미 - 우클릭 - 검사 - elements에서 파란네모 - copy - copy selector
파이썬파일에서 data의 url칸을 분석할 웹페이지링크 넣고
bs4를 이용하여 분석해본다.
print(title.text)
----> 올빼미
print(title['href'])
----> /movie/bi/mi/basic.naver?code=222301
.text를 하면 위 태그에서 올빼미만 나온다.
['href']를 하면 a href = 의 내용이 나온다.
영화랭킹 페이지에서 영화 순위 / 제목 / 평점을 추출하려고 한다.
위 노란박스의 회색 글씨는 위 방법으로 뽑아온 태그이다.
거기서 movies 를 파란박스로 정의하고
for문을 쓴다. 그리고 a를 movie에서 분홍박스로 정의하면 해당 웹 페이지에 나와있는 랭킹 순위안에 들어간 영화제목이 다 나온다.
영화 제목만 추출되면 좋으나 None 이라는 것까지 나오는데 여기서 None은 영화 랭킹화면에서 중간에 나오는 밑줄이 있는데 그것 때문에
None으로 표시 된거 같다.
영화 제목이 만들어진 코드와 동일하게 <tr></tr>로 되어있어서 표시되는건데
이 None을 빼고 만들려면 아래 코드를 적용시키면 된다.
*
for a == 0 ▶️ a는 0이다
for a != 0 ▶️ a는 0이 아니다
같은 뜻으로
if a is not None:
을 쓸 수 있다.
위 코드로 작업하면 영화제목이 나열되는걸 볼 수 있다.
이처럼 순위 / 제목 / 평점을 뽑아보면
이렇게 하면 된다.
순위의 경우
<img src="https://ssl.pstatic.net/imgmovie/2007/img/common/bullet_r_r02.gif" alt="02" width="14" height="13">
코드가 이렇게 되어있어서 여기서 alt만 뽑아줘야 하기때문에 rank = 코드 마지막에 ['alt']을 넣어줬다.
에러난 부분
영화제목만 뽑았을때는 잘 됐다고 생각했는데
순위(rank) 작업을 하면서 에러가 생겨났다.
그 이유는 코드 맨 위 데이터 url 입력시 잘못된 url을 입력하였기때문이다.
그래서 옳바른 url을 입력하고 나서 정상작동했다!
'웹개발 메모장' 카테고리의 다른 글
2회독 - mongoDB 조작하는 방법 (0) | 2022.12.07 |
---|---|
2회독 - DB 데이터베이스란? & mongoDB 연결방법 (0) | 2022.12.06 |
2회독 - 3주차 파이썬 기초 공부 (2) | 2022.12.06 |
2회독 - 2주차 Ajax 연습하기 (0) | 2022.12.06 |
2회독 - 2주차 강의내용 jQuery 기초 (0) | 2022.12.06 |