블로그 발행글 제목과 링크 추출 방법
블로그에 발행된 글의 제목과 링크를 추출하는 방법은 다양하며, 주로 파이썬을 이용한 웹 크롤링 기술이 활용됩니다. 웹 크롤링은 웹 페이지의 HTML 소스 코드를 분석하여 원하는 데이터를 추출하는 과정입니다. 다음은 다양한 블로그 플랫폼에서 제목과 링크를 추출하는 데 사용될 수 있는 방법과 도구들에 대한 설명입니다.
웹 크롤링을 위한 기본 도구
- Requests: 웹 페이지의 HTML 콘텐츠를 가져오는 데 사용되는 파이썬 라이브러리.
- Beautiful Soup (bs4): HTML 및 XML 파일을 파싱하고, 필요한 데이터를 추출하는 데 사용되는 파이썬 라이브러리.
- Selenium: JavaScript를 사용하는 동적 웹 페이지의 콘텐츠를 크롤링하는 데 유용한 도구. 웹 브라우저를 자동화하여 실제 사용자와 유사하게 페이지를 렌더링하고 상호 작용할 수 있다.
일반적인 크롤링 과정
- 웹 페이지 접속: requests 라이브러리를 사용하여 크롤링하고자 하는 웹 페이지에 접속합니다.
- HTML 파싱: Beautiful Soup를 사용하여 HTML 콘텐츠를 파싱합니다.
- 데이터 추출:
find()
,find_all()
,select()
등의 메서드를 사용하여 원하는 HTML 요소(제목, 링크 등)를 추출합니다. - 데이터 저장: 추출된 데이터를 리스트, CSV 파일, 데이터베이스 등에 저장합니다.
티스토리 블로그 제목 및 링크 추출
티스토리 블로그에서 글 제목과 링크를 추출하는 방법은 다음과 같습니다:
- 페이지네이션 처리: 티스토리 블로그는 페이지 번호를 이용하여 글 목록을 표시하므로, 페이지 번호를 변경하면서 모든 페이지를 순환해야 합니다.
- 글 목록 확인: 개발자 도구(F12)를 이용하여 글 목록이 있는 HTML 요소를 확인합니다. 일반적으로
<a>
태그에 글 링크가 포함되어 있습니다. - 데이터 추출: 각 페이지에서 글 제목과 링크를 추출합니다.
import requests
from bs4 import BeautifulSoup
def get_tistory_title(pages):
for page_no in range(1, pages + 1):
url = f'https://블로그아이디.tistory.com/category/?page={page_no}'
r1 = requests.get(url)
soup = BeautifulSoup(r1.text, 'html.parser')
posts = soup.select('#content > div.inner > div.post-item > a')
for post in posts:
posts_url = 'https://블로그아이디.tistory.com' + post['href']
print(posts_url)
위 코드에서 posts
변수는 각 페이지 내의 전체 포스트(글) 목록을 담고 있으며, posts_url
변수는 각 글의 URL을 추출하여 저장합니다.
네이버 블로그 제목 및 링크 추출
네이버 블로그의 제목과 링크를 추출하는 방법은 다음과 같습니다:
- Naver Open API 활용: 네이버 Open API를 사용하여 검색 결과를 JSON 또는 XML 형태로 받아옵니다.
- API 키 발급: 네이버 개발자 센터에서 애플리케이션을 등록하고, 클라이언트 ID와 클라이언트 Secret Key를 발급받습니다.
- API 요청: 발급받은 키를 사용하여 API에 요청을 보내고, 검색 결과를 받아옵니다.
- 데이터 파싱: JSON 또는 XML 형태로 반환된 결과를 파싱하여 제목과 링크를 추출합니다.
- iframe 처리: 네이버 블로그는 iframe 내에 본문이 위치하는 경우가 많으므로, Selenium을 사용하여 iframe에 접근해야 할 수 있습니다.
import urllib.request
import json
from selenium import webdriver
client_id = "YOUR_CLIENT_ID"
client_secret = "YOUR_CLIENT_SECRET"
encText = urllib.parse.quote("검색어")
url = "https://openapi.naver.com/v1/search/blog?query=" + encText # JSON 결과
request = urllib.request.Request(url)
request.add_header("X-Naver-Client-Id", client_id)
request.add_header("X-Naver-Client-Secret", client_secret)
response = urllib.request.urlopen(request)
rescode = response.getcode()
if(rescode==200):
response_body = response.read()
data = json.loads(response_body.decode('utf-8'))
for item in data['items']:
title = item['title']
link = item['link']
print(title, link)
위 코드는 네이버 API를 사용하여 블로그 검색 결과를 가져오고, 각 결과에서 제목과 링크를 추출하는 예시입니다.
워드프레스 블로그 제목 및 링크 추출
워드프레스 블로그의 글 주소 및 제목을 추출하는 방법은 다음과 같습니다.
- 프로그램 활용: 워드프레스 글 주소 추출 프로그램을 사용하여 손쉽게 워드프레스 포스트 주소 및 제목을 추출할 수 있습니다.
- HTML 파싱: 웹 페이지의 HTML 구조를 분석하여 제목과 링크를 추출합니다.
자동화 및 추가 팁
- 자동화 스크립트: 크롤링 과정을 자동화하기 위해 스케줄러를 사용하여 주기적으로 스크립트를 실행할 수 있습니다.
- robots.txt 확인: 크롤링 전에
robots.txt
파일을 확인하여 크롤링이 허용된 범위인지 확인합니다. - 딜레이 주기: 서버에 과도한 부하를 주지 않도록 요청 사이에 딜레이를 추가합니다.
- 저작권 및 개인정보 보호: 수집한 데이터의 저작권을 확인하고, 개인정보를 포함한 민감한 정보는 수집하지 않도록 주의합니다.
이러한 방법들을 통해 블로그 발행글의 제목과 링크를 효율적으로 추출할 수 있으며, 필요에 따라 다양한 크롤링 기술과 도구를 조합하여 활용할 수 있습니다.