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로 하려니 안됐음 ^^;;;;)
'Development > Web development' 카테고리의 다른 글
웹개발 3주차 : (3) 과제에서 한 걸음 더 (0) | 2022.02.04 |
---|---|
웹개발 3주차 : (2) DB 사용하기 (0) | 2022.02.04 |
웹개발 번외편: 덕담 공유 페이지 만들기 (0) | 2022.01.27 |
웹개발 2주차 : JQuery & Ajax (0) | 2022.01.21 |
웹개발 1주차 : 웹 기본 개념 (0) | 2022.01.14 |