• 카테고리

    질문 & 답변
  • 세부 분야

    데이터 분석

  • 해결 여부

    미해결

강의 외 질문입니다.

19.08.22 08:38 작성 조회수 135

0

저번에 질문드렸던 학교홈페지이의 새 글이 올라오면 가져오는 것을 해보고 있습니다. 

사이트의 posts[4]가 무조건 최신글이 됩니다.

그렇다면 만약에 다음에 또 실행을 했을 때,  새글이 있을 때만 가져오고, 없을 때는 안가지고 오는 것을 어떻게 만들 수 있을까요?

 

일단 지금 생각하고 있는게, 가져온 글들을 .txt에 저장 후 같은 제목이 있으면 그만하고, 일치하는게 없다면 가져오는 것을 생각 중 입니다.

아니면 아얘 셀레니움으로 가야 방법이 있을까요?

 

힌트라도 부탁드립니다ㅠㅠ물어 볼 사람이 없어서 좀 답답합니다.

 

 

첫번째 코드가 최신코드입니다. 어디로 가는지 모르겠습니다ㅠㅠ

import requests
from bs4 import BeautifulSoup
import os

req = requests.get("https://www.daegu.ac.kr/article/DG159/list")
html = req.text
soup = BeautifulSoup(html, 'lxml')
posts = soup.select("table.board_tbl_list > tbody:nth-child(4) > tr > td.list_left > a")

for post in posts:
    title = post.get_text()
    print(title, end='')
    link = post.get('href')
    url = "https://www.daegu.ac.kr/article/DG159/list" + link
    print(url)

print(post)

 

 

import requests
from bs4 import BeautifulSoup
import os

BASE_DIR = os.path.dirname("/Users/yeon/Desktop/인프런/untitled folder")
req = requests.get("https://www.daegu.ac.kr/article/DG159/list")
html = req.text
soup = BeautifulSoup(html, 'lxml')
posts = soup.select("table.board_tbl_list > tbody:nth-child(4) > tr > td.list_left > a")
latest = posts[4].text

답변 1

답변을 작성해보세요.

0

안녕하세요.

 

여러가지 방법이 있을 수 있습니다.

 

1. DB에 마지막 글을 저장해놓고 가장 최신의 글과 비교해서 같으면 가져오지 않습니다.

 

2. 마지막 가져온 글의 사이즈 및 길이 및 hash 코드를 비교해서 같으면 아직 새글이 등록되지 

   않은 것이라 판단해서 가져오지 않습니다.

 

3. 게시판에 날짜 및 시간정보가 있다면 비교해서 같으면 새글이 아니므로 패스합니다.

 

구현하는 방법에 따라서 개개인마다 패턴이 다를 것 같습니다.

 

감사합니다.