ㅁ 개요
O 프로그램 소개
- 이번 글은 이전글(파이썬 게시글 변경사항 체크 후 나에게 자동으로 알림보내기 - 1. 소개)에 이은 2번째 글로 내가 원하는 사이트의 게시글을 파이썬의 크롤링으로 가져오는 방법에 대하여 알아보겠습니다.
O 완성된 프로그램 실행 화면
(1) 우리가 원하는 것은 아래 블로그에서 새로운 게시글이 올라왔는지, 또는 게시글이 변경되었는지를 알고 싶고, 새로운 게시글이 올라오거나, 게시글이 변경되면 나에게 자동으로 알림을 보내주는 것입니다.
먼저 이번글에서는 게시글을 크롤링하여 가져와 볼것이며, 아래의 경우 제목(10개)만 가져와 보겠습니다.
https://pagichacha.tistory.com
(2) 프로그램을 실행하면 아래와 같이 위의 게시글 제목 10개를 가져와서 뿌려줍니다.
ㅁ 세부 내용
O 완성된 소스
소스 : 1.py( 게시글 크롤링)
# -*- coding utf-8 -*-
from bs4 import BeautifulSoup
import requests
url = "https://pagichacha.tistory.com"
html = requests.get(url)
soup = BeautifulSoup(html.content, "html.parser")
beforePosts = []
for i in range(3,13):
beforePost = soup.select_one('#container > main > div > div.area-common > article:nth-child('+str(i)+') > div > a > strong').text
# print(beforePost)
beforePosts.append(beforePost)
# print(set(beforePosts))
beforeSet = set(beforePosts)
print(beforeSet)
O 소스 다운로드 및 실행
O 주요 내용
1. 크롤링하고 싶은 사이트에 접속합니다.
https://pagichacha.tistory.com/
2.해당 게시글 맨 위의 상단의 '제목 우클릭 > 검사' 를 클릭하면 오른쪽 화면에 창이 하나 열리면서 음영으로 표시되는데, 이부분이 왼쪽에서 마우스로 우클릭한 소스부분입니다.
3. 다시 오른쪽 소스 부분에서 '선택된 음영 우클릭 > Copy > Copy selector' 클릭 후
4. 아래와 같이 메모장 등에 붙여넣어 봅니다.
5. 우리는 이제 가져오고 싶은 게시글(게시글의 제목 10개)의 태그 위치를 알았으므로 이를 소스코드에 적용해 보겠습니다.(라인 넘버별로 설명)
lline 2~3: 관련 모듈 임포트
line 5 : 가져오려는 사이트를 url변수에 담습니다.
line 6 : requests객체의 get()함수로 url을 요청합니다.
line 7 : BeautifulSoup객체로 가져온 html을 이쁘게 가공합니다.
line 9 : 가져올 게시글 제목이 10개이므로 이를 담아둘 리스트를 만들어 둡니다.(beforePosts = [])
line 11 : 위의 메모장에 붙여둔 태크를 자세히 보면 'article:nth-child(3)' <-- 3부터 시작함을 알 수 있습니다.
게시글의 위에서 2번째 글을 위와 같은 방법으로 가져와서 메모장에 붙여보면 4로 되어있음을 알 수 있습니다.
따라서 우리는 게시글 제목 10개를 가져올 것이므로 for문으로 3부터 13까지 가져와야 10개을 가져올 수 있습니다.
line 12 : soup객체의 select_one()함수로 게시글의 제목을 '.text'로 가져와서 beforePost변수에 담습니다.
line 14 :그리고 위의 beforePost변수에 담아둔 게시글 제목을 beforePosts리스트에 append()함수로 붙여줍니다.
line 16 : set()함수는 순서와 상관없이 묶어 주는 함수인데, 뒤에서 사용할 예정입니다.
6. 이제 프로그램을 실행하면 아래와 같이 게시글의 제목 10개를 잘 가져오는 것을 볼 수 있습니다.
ㅁ 정리
O 우리가 배운 내용
오늘은 여기까지이며, 댓글과 하트는 제가 이글을 지속할 수 있게 해주는 힘이 됩니다.
감사합니다.
※ 추가적인 정보는 아래 유튜브 영상에서 해당 내용을 더욱 자세히 보실 수 있습니다.
'파이썬 프로젝트 및 응용 > 게시글 변경사항 체크 후 나에게 자동으로 알림보내기' 카테고리의 다른 글
(프로젝트)파이썬 게시글 변경사항 체크 후 나에게 자동으로 알림보내기 - 5. 변경내용을 메신저로 알림 보내기 (0) | 2023.02.02 |
---|---|
(프로젝트)파이썬 게시글 변경사항 체크 후 나에게 자동으로 알림보내기 - 4. 변경사항이 있으면 변경내용을 파일로 저장하기 (0) | 2023.02.02 |
(프로젝트)파이썬 게시글 변경사항 체크 후 나에게 자동으로 알림보내기 - 3. 이전에 크롤링한 게시글과 현재 게시글 비교하기 (0) | 2023.02.02 |
(프로젝트)파이썬 게시글 변경사항 체크 후 나에게 자동으로 알림보내기 - 1. 소개 (0) | 2023.02.02 |