📆 DAY35
3. 웹크롤링을 활용한 데이터 수집 자동화
(5) IT 뉴스 기사 수집
- 여러 페이지 수집하기
import requests
from bs4 import BeautifulSoup
keyword = input("검색어 입력 >> ")
page_num = 1
while True:
code = requests.get(f"https://underkg.co.kr/index.php?mid=news&search_keyword={keyword}&search_target=title_content&page={page_num}&division=-2934548&last_division=-2902705")
soup = BeautifulSoup(code.text, "html.parser")
title = soup.select("h1.title > a")
if len(title) == 0:
break
for i in title:
print(f"제목 : {i.text}")
link = i.attrs["href"] # .attrs : 요소의 속성 추출
print(f"링크 : {link}")
code_news = requests.get(link)
soup_news = BeautifulSoup(code_news.text, "html.parser")
content = soup_news.select_one("div.read_body")
print(content.text.replace("\n", " ").strip())
print("---------------------------------------")
page_num += 1
더 알고 싶은 점
select와 select_one의 차이점
- select는 for문을 통해 한 번 더 접근해야 원하는 데이터를 가져올 수 있으나, select_one은 바로 가져올 수 있음
https://pycoding.tistory.com/entry/python-크롤링-select-selectone-차이
python 크롤링, select , select_one 차이
실제로 크롤링을 처음 시작할 때 헷갈리는 부분 중 하나가 select와 select_one의 차이다. 차이점은 select는 결과값이 리스트 형태로 저장되고, select_one은 그렇지 않다. select로 수집하였을때는 결론적
pycoding.tistory.com
느낀 점
이전에 안드로이드를 개발할 때 페이징 때문에 꽤나 애먹었던 기억이 있다. 사실 웹에서는 어렵지 않게 페이징을 구현할 수 있었지만, 앱에서는 소스도 많이 없어서 개발하기가 여간 까다롭지가 않았다. 이번 강의에서 page=를 보자마자 그 경험이 떠올라서 더 흥미롭게 수강했다. 물론 이 강의에서 가장 중요한 부분은 웹 크롤링, 즉 데이터를 가져오는 쪽이지만 괜스레 page를 보자마자 더 신중하고 꼼꼼하게 수강했던 것은 바로 이전에 경험했던 부분이기 때문이었다. page에서 데이터를 가져올 때 반복문 (여기서는 리스트를 사용)을 사용하면 더욱 효과적으로 데이터를 가져올 수 있겠다는 것을 깨닫게 되었다.
'멋쟁이사자처럼 13기 > TIL 챌린지' 카테고리의 다른 글
| 멋쟁이사자처럼 후기 + 일은 간편해지고 수익은 성장하는 자동화 스킬 : 파이썬부터 Chat GPT 까지 (0) | 2025.05.14 |
|---|---|
| 멋쟁이사자처럼 후기 + 일은 간편해지고 수익은 성장하는 자동화 스킬 : 파이썬부터 Chat GPT 까지 (0) | 2025.05.13 |
| 멋쟁이사자처럼 후기 + 일은 간편해지고 수익은 성장하는 자동화 스킬 : 파이썬부터 Chat GPT 까지 (0) | 2025.05.11 |
| 멋쟁이사자처럼 후기 + 일은 간편해지고 수익은 성장하는 자동화 스킬 : 파이썬부터 Chat GPT 까지 (0) | 2025.05.10 |
| 멋쟁이사자처럼 후기 + 일은 간편해지고 수익은 성장하는 자동화 스킬 : 파이썬부터 Chat GPT 까지 (0) | 2025.05.09 |