- 1
- gimmepoint
- 조회 수 541
생각보다 별거 없으니 그점 감안해주시기 바랍니다.
이 프로그램은 이 사이트 커뮤니티란에 새로 올라온 글이 몃개인지 알려줍니다.
humit 님의 parsewab 의 도음을 받았구요
코드는 이렇습니다
import requests
from bs4 import BeautifulSoup
import glob
import os
import time
def new_comm(): #함수
req = requests.get('https://studyforus.com/communityboard') #전문 긁어오기
cont = req.content #content 만 때로 추출
soup = BeautifulSoup(cont, 'html.parser') #??
tbody = soup.find('tbody') #soup 중 tbody 부분 찾기
new = tbody.find('td', class_ = 'no').text #tbody 중
newi = 0 #최신글 번호
for i in new:
if '0' <= i and i <= '9':
newi = newi*10 + int(i) #최산글 번호 int 로 만들기
del req, cont, soup, tbody, new #필요없는거 지우기
f = open('s1t2u3d4y5f6o7r8u9s.txt', 'a') #오류방지용 파일 만들기
f.close()
f = open('s1t2u3d4y5f6o7r8u9s.txt', 'r') #파일 읽기
now = f.read() #파일 다 긁어오기
f.close()
now = now.split('\n') # 줄 나눔
if now and now[0]: #파일이 비어있지 않았으면
lastnew = int(now[0]) #마지막에 측정했던 최신글 번호
lasttime = float(now[1]) #마지막으로 측정했던 시간
print('{} new community posts between \'{}\' and \'{}\''.format(newi - lastnew, time.asctime(time.localtime(lasttime)), time.ctime())) #출력
f = open('s1t2u3d4y5f6o7r8u9s.txt', 'wt') #파일 열기
f.write(str(newi)) #현재 최신글 번호 입력
f.write('\n') # 파일 줄바꿈
nowtime = time.time() #현재시간 계산
f.write(str(nowtime))
f.close() #파일 닫기
else: #파일이 비어있으면
print('hello.')
print('this program started ') #출력
f = open('s1t2u3d4y5f6o7r8u9s.txt', 'wt') #파일 열기
f.write(str(newi)) #현재 최신글 번호 입력
f.write('\n') # 파일 줄바꿈
nowtime = time.time() #현재시간 계산
f.write(str(nowtime))
f.close() #파일 닫기
new_comm()
os.system('pause') #계속하려면 아무 키나 누르십시오 . . .
입니다
오류가 있으면 제가 최대한 고쳐는 보겠습니다
약간 수정을 하자면 newi를 저렇게 복잡하게 구하지 않아도 됩니다.
어차피 int 함수를 적용하면 앞쪽과 뒷쪽의 불필요한 공백은 전부 무시하도록 되어있습니다.