728x90
반응형
from bs4 import BeautifulSoup
from urllib.request import urlopen
cnt = 0
title_list = []
link_list = []
# 지정한 url의 모든 html 코드를 긁어온다.
html=urlopen('https://www.boannews.com/media/t_list.asp')
bs=BeautifulSoup(html,'html.parser')
# 긁어온 코드에서 span 태그의 class 이름이 news_txt인 것만 title에 저장한다.
# boanews 홈페이지에서는 기사 제목을 <span class='news_txt'>에 작성해놓음.
title = bs.select('span[class = news_txt]')
# <div class = news_list> 밑에 <a href= ~~>로 기사 링크가 걸려있음
link = bs.select('div.news_list a')
# title에는 기사 제목 뿐만 아니라 태그까지 모두 포함되어 있기 때문에 get_text()를 이용해 text만 뽑아준다.
# 뽑은 기사 제목을 title_list라는 list에 저장
for i in title:
title_list.append(i.get_text())
# <div class = news_list>에 <a href = ~~>로 2개의 링크를 써놨음
# 그래서 1개씩만 출력해주기 위해 link의 수를 카운트 하고 cnt가 홀수일 경우에만 출력하도록 해줌
# 뽑은 link를 link_list라는 list에 저장
for i in link:
cnt += 1
if cnt % 2 == 1:
link_list.append("https://www.boannews.com" + i.attrs["href"])
# 반복문을 기사 title의 개수만큼 돌리고 title_list와 link_list에서 하나씩 뽑아줌
for i in range(0, len(title)):
print(title_list[i] + ' ' + link_list[i])
실행결과
이해가 많이 부족해서 오래걸렸다.
웹 공부가 좀 필요할 것 같다.
728x90
반응형
'프로그래밍 > 파이썬' 카테고리의 다른 글
unittest를 이용한 코드 테스트 (0) | 2022.07.07 |
---|---|
파이썬 int형 리스트를 join을 이용하여 출력하기 (0) | 2022.06.11 |
파이썬 set(집합)에서 사용 가능한 연산자, 메소드 (0) | 2022.02.25 |
파이썬) 팩, 언팩 (0) | 2022.02.21 |
파이썬) 리스트 vs 튜플 (0) | 2022.02.20 |
댓글