커뮤니티
포인트
쿠폰
내 강의실
국비 신청 내역
증명서
계정
로그아웃
학습 질문
개발 일지
나의 활동
답변 완료
3-12 파이썬 질문입니다.
undefined주차
북마크
장*윤
댓글
3
추천
0
조회수
12
조회수
12
답변 완료

* 겪고 있는 문제 상황을 최대한 자세하게 작성해주세요.



안녕하세요! 선생님 질문이 있습니다.


from pymongo import MongoClient
client = MongoClient('mongodb+srv://test:sparta@cluster0.bv2hvyf.mongodb.net/cluster0?retryWrites=true&w=majority')
db = client.dbsparta


user = db.users.find_one({'name': 'boby'})
print(user['age'])


바비의 age를 가져오고 싶다 그러면 user['age'] 이렇게 하셨는데,


앞에 3-7, 3-8 강의를 보면,


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

#old_content > table > tbody > tr:nth-child(2) > td.title > div > a
#old_content > table > tbody > tr:nth-child(3) > td.title > div > a
#old_content > table > tbody > tr:nth-child(4) > td.title > div > a

#old_content > table > tbody > tr:nth-child(2) > td:nth-child(1) > img
#old_content > table > tbody > tr:nth-child(2) > td.point

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

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(title, rank, star)



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(title, rank, star)



여기서는 보시면,

title의 text만 뽑아 내기 위해서 a.text

rank 의 이미지만을 뽑아내기 위해서 ['alt]

star에서는 평점의 text를 뽑아내기위해서 .text


를 하셨는데

혹시 이러한 것들이 어떤 규칙에 의해서 .text [


3-7강에서는

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

#old_content > table > tbody > tr:nth-child(2) > td.title > div > a

title = soup.select_one('#old_content > table > tbody > tr:nth-child(2) > td.title > div > a')
print(title['href'])

print(title['href']) ⇒실행하면, => /movie/bi/mi/basic.naver?code=186114


title['href'] 를 쓰셨는데


a.text => bs4

rank['alt'] => bs4

star.text => bs4

title['href'] => bs4

user['age'] => mongodb


왜 title.href 가아닌, title['href]를 쓰는 것이고

왜 rank.alt 가 아닌 rank['alt']를 쓰는것이고

왜 user.age 가 아닌, user['age'] 라고 쓰는 것인가요?


파이썬에서 어떤 규칙들이나 어떤 이유에 의해서 위처럼 정의 되는지 궁금합니다.

이것을 다 외우는 것은 아니고 어떠한 원리나 정의가 있는 것 같은데 그것이 무엇인지 어떤 개념으로 이렇게 쓰이고 있는지 궁금합니다.













취소
 공유
취소
댓글 0
댓글 알림
나의얼굴