>
우선 아래 포스팅을 먼저 읽고 오자.
https://marketerbong.tistory.com/53
마케터라면 검색엔진최적화(SEO)를 하기 위해, 프로모션 페이지나 광고 랜딩 페이지 등에 메타 태그를 삽입할 것이다.
그리고 사이트를 운영 중이라면, 전체 사이트에 적용되도록 메타태그(오픈그래프)를 적용할 것이다.
모르겠다면, 아래 글을 먼저 보는 게 나을 것이다. (네이버 SEO를 위한 글임. 근데 네이버나 구글이나 기본적인 원리는 같다. 아래 글이 자세히 정리되어 있어서, 아래 글을 보는 게 이해하는데 도움 될 것이다.)
https://searchadvisor.naver.com/guide/markup-content
콘텐츠 마크업
페이지 제목 HTML 문서의 <head> 태그내에 있는 <title> 태그를 활용합니다 페이지 제목 ◆ 페이지 제목 작성 TIP! 사이트 메인 페이지의 title 태그는, 사이트의 성격을 잘 표현할 수 있는 브랜드명으로
searchadvisor.naver.com
흔히 말하는 og:title, og:description 같은 걸 말하는 걸로, url을 카톡이나 블로그에 입력했을 때 미리보기 이미지, 텍스트 등이 나오는 것과 같다.
아래 이미지와 같이 자동으로 불러와지는 영역을 말한다.
1번은 og:title(제목), 2번은 og:description(설명), 3번은 og:url(페이지url), 4번은 og:image(이미지)에 해당한다.
단, 위 사이트는 og:title만 넣어놨기에, 나머지는 자동으로 적절한 걸 불러와 노출한 것이다. 그래서 description 부분이 뭔가 부자연스럽게 나오는 것이고, image도 노출되지 않는 빈칸으로 나오는 것이다.
아무튼 이런 사이트에 기본적으로 메타태그를 og(오픈그래프) 형태로 삽입하기에, 해당 정보를 불러오는 것을 정리해봤다.
웹크롤링을 위한 기본 코드는 다음과 같다.
import requests
from bs4 import BeautifulSoup
url = '크롤링 하고 싶은 페이지url'
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')
아, 혹시 파이썬 패키지가 설치 안되어있다면, requests, bs4 는 설치해야한다.
나는 네이버 메인페이지를 크롤링할 예정이기에, 아래와 같이 작성했다.
import requests
from bs4 import BeautifulSoup
url = 'https://www.naver.com/'
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')
og_title = soup.select_one('meta[property="og:title"]')['content']
og_desc = soup.select_one('meta[property="og:description"]')['content']
print(og_title,og_desc)
meta[property="og:title"] 영역은 메타태그에서 property가 og:title인 것을 불러오라는 명령어이다.
왜냐하면, 네이버페이지를 봤을 때, 아래와 같이 meta 태그 안에, property="og:title"로 정의된 프로퍼티가 있어서, 해당 내용을 불러오라는 명령어다.
다만 그 뒤에 ['content'] 가 붙은 건, 안붙였을 때 아래와 같이 나오기 때문이다.
즉, 다시 meta태그 안에 있는 content 부분만 출력을 원하기에, ('meta[property="og:title"]')['content']를 붙인 것이다.
그러면 아래와 같이 출력된다.
og:title은 [네이버], og:description은 [네이버 메인에서 다양한 정보와 유용한 컨텐츠를 만나 보세요]인 것이다.
사이트를 웹에 배포해보자 2 (FTP에 내가 만든 파일 올리기) (1) | 2024.10.10 |
---|---|
사이트를 웹에 배포해보자 1 (aws 서버 대여하기) (0) | 2024.10.10 |
사이트 크롤링 하는 방법 (0) | 2024.10.09 |
mongoDB 사용하는 방법(데이터 저장, 찾기, 변경하기, 지우기 등) (0) | 2024.10.08 |
mongoDB 세팅하는 방법 (0) | 2024.10.08 |