본문 바로가기
Knowledge/sparta web develope

파이썬 기본 , 웹스크래핑(크롤링)

by w.developer 2023. 5. 9.

1. 파이썬 기본

 

1. 파이썬 기본 리스트,딕셔너리,함수

a = ['사과','배','감']

print(a[1])                 => print(변수) 로 출력
 
=> 출력: 배

a = {'name' : '영수' ,'age' : 24}

print(a['name'])                       
 
=> 출력: 영수

 <함수설정>
def sum (a,b,c):
    return a+b+c                                 

result = sum(1,2,3)

print(result)
 
=> 출력 : 6
 

 

2. 조건문

ages = [5,10,13,23,25,9]

for a in ages :
    if a > 20 :
        print ('성인입니다')
    else:
        print ('청소년입니다')

 

3.파이썬 패키지 설치하기 (venv, requests)

<터미널 창>
 
$ python -m venv venv               =>venv 환경 설정

$ pip install requests                 =>requests  설치 , (fetch처럼 데이터 가져오는 것)

 

4. requests 사용하기 (1) 기본 틀

import requests # requests 라이브러리 설치 필요

r = requests.get('데이터 주소 링크')
rjson = r.json()

 

5. requests 사용하기 (2) fetch처럼 필요부분 가져오기

import requests # requests 라이브러리 설치 필요

rjson = r.json()

rows = rjson['RealtimeCityAir']['row']
                               
for a in rows :
    gu_name = a['MSRRGN_NM']
    gu_mise = a['IDEX_MVL']
    print(gu_name,gu_mise)

 

 


2. 웹스크래핑(크롤링) 데이터 가져오기 

Q) 크롤링이란?

웹 페이지에서 필요한 부분을 가져오는것

$ pip install bs4 설치 후 진행

 

1.크롤링 기본 골격

import requests
from bs4 import BeautifulSoup

URL = "가져올 웹페이지 URL"
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')

 

2.크롤링 가져오기

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')

video_list = soup.select("#mainContent > div > div.box_ranking > ol > li")   =>video_list라는 변수를 설정. 데이터를 가져옴
for v in video_list:      => viedo_list안에서 반복문. v라는 변수로
  # print(v)
  rank = v.select_one(".rank_num").text         =>v.selec_one(v로설정후 하나만 가져옴) , 다른 사이트 rank_num 데이터를
  title = v.select_one(".tit_item").text.strip("\n")         => 마지막에 .strip는 앞,뒤 공백을 제거
  rate = v.select_one(".txt_grade").text              => 마지막에 .text 는 글자만 가져온다는 의미
  print(rank, title, rate)

 

'Knowledge > sparta web develope' 카테고리의 다른 글

project. 화성땅 공동구매  (1) 2023.05.12
CSS, 깃허브  (0) 2023.05.11
mongo DB , FLASK  (0) 2023.05.09
Fetch 데이터 가져오기  (0) 2023.05.08
Javascript & JQuery  (0) 2023.05.08