Development
[웹개발종합반] 4주차 개발일지 (3) - 나홀로 메모장
RED BEAN
2021. 7. 30. 19:25
반응형
모든 코드는 깃허브에 올려놨습니다.
https://github.com/Hong-been/Sparta/tree/main/alonelemo
[
GitHub - Hong-been/Sparta: 스파르타 코딩클럽-웹개발종합반을 들으며 작성한 코드입니다.
스파르타 코딩클럽-웹개발종합반을 들으며 작성한 코드입니다. Contribute to Hong-been/Sparta development by creating an account on GitHub.
github.com
](https://github.com/Hong-been/Sparta/tree/main/alonelemo)
API 설계대로 뼈대 준비하기
meta태그란?
- 에 들어가는 태그로 눈에 보이지 않지만 사이트의 속성을 설명해준다.
- 카톡으로 링크를 보내면, 썸네일,제목, 내용약간, 사이트이름 이 뜨는 것이 메타태그에 들어있는 정보!
- 메타태그 안에 들어있는
og:image, og:title, og:description
을 크롤링해오면 된다.
기본 코드
import requests
from bs4 import BeautifulSoup
url = 'https://movie.naver.com/movie/bi/mi/basic.nhn?code=171539'
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')
메타태그 속 정보 가져오기
title=soup.select_one('head > meta:nth-child(9)')
- copy-selector 해서 가져온 title이 제대로 가져와지지 않는다.
- 왜냐하면 웹페이지에서의 순서(9번째)와 파이썬에서 가져온 순서가 다르기 때문이다.
- 이를 위해서 하나씩 찾아가며 순서를 알아내기보다 다른 방법을 시도해본다.
title=soup.select_one('meta[property="og:title"]')['content']
desc=soup.select_one('meta[property="og:description"]')['content']
image=soup.select_one('meta[property="og:image"]')['content']
- 성공!
서버에 데이터 저장
doc={
'title':title,
'image': image,
'desc': desc,
'url':url_receive,
'comment':comment_receive
}
db.articles.insert_one(doc)
- 저장 후에 새로고침 하는 함수
window.location.reload();
완성 스크린샷📸
반응형