1. JQuery& Ajax 복습

헷갈려서 적어두는 중요한 내용

Ajax 내에서 정의된 변수를 Ajax 내에서 호출할 때, ${변수이름} < 이 형식으로 호출을 해줘야 한다.

      외부에서 정의된 ID를 Ajax 내에서 호출할 때에는, $('#ID이름') < 이 형식으로 호출.

 

꼭 기억하기 !_!

 

2. 파이썬 기본 문법

list형

fruits = ['사과','배','배','감','수박','귤','딸기','사과','배','수박']

 

dictionary형

people = [{'name': 'bob', 'age': 20}, 
{'name': 'carry', 'age': 38},
{'name': 'john', 'age': 7},
{'name': 'smith', 'age': 17},
{'name': 'ben', 'age': 27}]

 

if문

파이썬의 충격적인 직관성.. 줄만 맞추면 된다. 괄호도 필요없고 end도 필요 없다!

if person['age'] 
    print('성인')
else:
    print('청소년')

 

for문

파이썬의 충격적인 직관성2.. List/ Dictionary 안에 있는 데이터 내에서 알아서 돈다!!!!!!!!!!

for person in people:
     print(person['name'])

 

3. 파이썬 크롤링

1) request로 html 불러오기

 

2) html 내에서 가져올 대상 찾기

   > "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('https://movie.naver.com/movie/sdb/rank/rmovie.naver?sel=pnt&date=20210829',headers=headers)

soup = BeautifulSoup(data.text, 'html.parser')

 

BeautifulSoup의 가장 기본적인 형태.

data = requests.get() 안에 들어있는 url을 바꿔주면 해당 url에 있는 내용들을 크롤링할 수 있다.

(((이번 예제에서는 text를 가져왔기에 BeautifulSoup(data.text)로 했지만 숫자면 .number 이렇게 바뀌려나?

    >> html문 내에서는 겉보기와 관계 없이 전부 다 text인 듯?)))

 

    > html 중에서 가져오고 싶은 특정 대상을 검사해서 나오는 html문을 가져온다.

       : 데이터의 형태가 일정하다면, html문은 반복되기 마련.

       : 반복되는 html문을 간단하게 for문으로 처리해서 크롤링할 수 있다.

 

movies = soup.select('#old_content > table > tbody > tr')

의미 : html문 안의 id들을 타고 타고 타고 들어가자! (아래 참조)

 

<div id = "old-content">
	<table>
		<tbody>
			<tr>
             #여기에 html 리스트가 들어가 있음
             #<tr>영화1</tr> <tr>영화2</tr> 이렇게 반복적으로 들어가 있어서, 이것을 크롤링해오는 것!!
			</tr>
		</tbody>
	</table>
</div>

: 그 다음, 리스트인 <tr></tr> 내의 텍스트를 하나씩 가져온다.

 

for movie in movies:
    a = movie.select_one('td.title > div > a')
    if a is not None:
    	title = a.text
        print(title)

> html의 구조를 잘 이해하는 것이 중요!!!!!!!

 

<img src="https://ssl.pstatic.net/imgmovie/2007/img/common/bullet_r_r01.gif" alt="01" width="14" height="13">

rank = movie.select_one('td:nth-child(1) > img')['alt']

위와 같은 경우는 img 안에 alt를 가져와야해서, ['alt']로 덧붙여주는 것이고

 

<td class="point">9.64</td>

star = movie.select_one('td.point').text

위와 같은 경우는 point라는 class 안의 텍스트를 가져오는 것이라 .text로 덧붙여주는 것

(html에서는 데이터 형식이 숫자처럼 보여도 전부 다 text인건가..? number로 하려니 안됐음 ^^;;;;)

+ Recent posts