3주차 파이썬

송은혜·2022년 2월 5일

PYTHON

파이썬에서는 괄호들로 코드를 묶어주는 것이 아니고, 들여쓰기로 영역을 구분한다.

★간격을 맞추고 줄을 띄는것이 중요하다.세미콜론도 사용하지 않는다.

주석표시 = #

코드를 작성할때 = 은 오른쪽에 있는 값을 왼쪽의 이름표에 넣어준다는 뜻. 대입시키는것.

같다의 의미를 사용하고 싶다면 == 으로 사용해주면 된다.

자바같은 경우, 자료형을 지정해주는데 (ex. int a = 3;) 파이썬에서는 따로 지정해줄 필요가 없다.

a = 3      # 3을 a에 넣는다
b = a      # a를 b에 넣는다
a = a + 1  # a+1을 다시 a에 넣는다

num1 = a*b # a*b의 값을 num1이라는 변수에 넣는다
num2 = 99 # 99의 값을 num2이라는 변수에 넣는다

문자열을 입력할때는 ‘’ 작은 따옴표 사이에 적어준다.

# 선택자를 사용하는 방법 (copy selector)
soup.select('태그명')
soup.select('.클래스명')
soup.select('#아이디명')

soup.select('상위태그명 > 하위태그명 > 하위태그명')
soup.select('상위태그명.클래스명 > 하위태그명.클래스명')

# 태그와 속성값으로 찾는 방법
soup.select('태그명[속성="값"]')

# 한 개만 가져오고 싶은 경우
soup.select_one('위와 동일')

이런식으로 사용한다.

#old_content > table > tbody > tr:nth-child(3) > td.title > div > a
#old_content > table > tbody > tr:nth-child(4) > td.title > div > a
#위 문장은 크롤링하며 개발자도구에서 원하는 부분의 코드값을 카피해서 본것.

movies = soup.select('#old_content > table > tbody > tr')
# tr td 는 일종의 배열같은 것이기 때문에, 바깥상자인 tr까지만 입력해서 
# movies라는 바깥상자를 만들어놓고,
# for 문을 통해 바깥상자안에 있는 td 부분중 원하는 부분만을 돌며 검색.
for movie in movies:
    a = movie.select_one('td.title > div > a')
    if a is not None:
        title = a.text
        rank = movie.select_one('td:nth-child(1) > img')['alt']
        star = movie.select_one('td.point').text
        print(rank, title, star)
        

0개의 댓글