일 | 월 | 화 | 수 | 목 | 금 | 토 |
---|---|---|---|---|---|---|
1 | 2 | |||||
3 | 4 | 5 | 6 | 7 | 8 | 9 |
10 | 11 | 12 | 13 | 14 | 15 | 16 |
17 | 18 | 19 | 20 | 21 | 22 | 23 |
24 | 25 | 26 | 27 | 28 | 29 | 30 |
- windows
- 파이썬
- office
- 파워포인트
- 파이썬3
- Excel
- Windows10
- 오피스
- pyqt5
- win32com
- VBA
- 비주얼베이직
- 엑셀
- 깃
- matlab
- 파이썬GUI
- html
- 윈도우10
- 윈도우11
- Outlook
- pythongui
- Windows11
- 아웃룩
- git
- python3
- 안드로이드
- pandas
- python
- 문자열
- Android
Appia의 IT세상
[파이썬 크롤링]네이버 스포츠 추천 뉴스 크롤링 하여 제목 출력하기 (bs4, requests) 본문
[파이썬 크롤링]네이버 스포츠 추천 뉴스 크롤링 하여 제목 출력하기 (bs4, requests)
Appia 2021. 8. 18. 06:59[파이썬 크롤링]네이버 스포츠 추천 뉴스 크롤링 하여 제목 출력하기 (bs4, requests)
요새 한참 웹페이지 크롤링에 대해서 열을 올리고 있습니다. 그중에서, 오늘은 네이버에 특정 부분에 대해서 크롤링 해보는 작업을 해볼까 합니다. 먼저, 다음 보이는 네이버의 추천 뉴스 부분에 대해서 파싱하는 것에 대해서 이번 포스팅을 통해서 이야기를 해볼까 합니다.
그럼 먼저, 위에부분을 파싱하기 전에 어떤 부분에 관련된 내용이 쓰여져 있는지에 대해서 HTML 소스 코드 보기로 확인해보겠습니다. 다음 링크를 통해서 HTML 소스 코드를 살펴보겠습니다.
[윈도우10 Windows10]크롬(Chrome) 웹사이트 HTML 코드 확인하기
그러면, 위의 추천 뉴스의 한 부분을 복사하신 후에 "Ctrl+F"키를 누르셔서, 해당 부분을 붙여넣기 하여 검색을 해봅니다. 그럼 해당 부분에 대해서 다음과 같은 부분을 확인해야하는 것을 알 수 있습니다.
<ul class="home_news_list">
<span>
그리고 그리고 약간의 소스 코드 보기를 검토하다보니, 다음과 같은 부분들 또한 확인하였습니다.
<ul class="home_news_list division">
그럼 위의부분을 이용하여 파싱을 해보도록 하겠습니다. 저의 경우 BeautifulSoup과, request를 이용하였습니다.
import requests
from bs4 import BeautifulSoup
res = requests.get("https://sports.news.naver.com/wfootball/index")
soup = BeautifulSoup(res.content, 'html.parser')
# 먼저 "home_news_list", "home_news_list division"을 가지는 클래스에 해당하는 ul 태그 부분을 저장하였습니다.
mydata = soup.find('ul', class_="home_news_list")
mydata1 = soup.find('ul', class_="home_news_list division")
# 그런 후에 해당 하는 span 태그를 가지는 부분을 별도로 저장하였습니다.
recommend_list = mydata.find_all('span')
recommend_list1 = mydata1.find_all('span')
#반복문을 이용하여 해당 부분에 대해서 출력하였습니다.
for item in recommend_list:
v = item.get_text()
print(v)
for item in recommend_list1:
v = item.get_text()
print(v)
위의 부분을 이용하여 최초 파싱하면 다음과 같은 결과가 나타납니다.
앞의 공백 때문에 약간 보기 싫기도 하고, 테스트를 정확하게 인지할 수 없는 단점이 있었습니다. 그래서, 이스케이프 문자인 "\n", "\t"을 없애고 출력을 해보도록 하겠습니다. 이스케이프 문자인 "\n", "\t"을 없애기 위해서 replace 를 이용하였습니다.
import requests
from bs4 import BeautifulSoup
res = requests.get("https://sports.news.naver.com/wfootball/index")
soup = BeautifulSoup(res.content, 'html.parser')
mydata = soup.find('ul', class_="home_news_list")
mydata1 = soup.find('ul', class_="home_news_list division")
recommend_list = mydata.find_all('span')
recommend_list1 = mydata1.find_all('span')
for item in recommend_list:
v = item.get_text()
# 탭을 가리키는 \t 부분을 삭제하였습니다.
v1 =v.replace("\t","")
# 줄바꿈을 가리키는 \n 부분을 삭제하였습니다.
v1 =v1.replace("\n","")
print(v1)
for item in recommend_list1:
v = item.get_text()
v1 =v.replace("\t","")
v1 =v1.replace("\n","")
print(v1)
위의 코드를 이용하니 다음과 같은 결과가 나타났습니다.
훨씬 앞선 결과보다 보기 좋은 것을 알 수 있습니다. 이와 같은 방법으로 네이버의 추천뉴스 부분을 파싱해봤습니다.
Python[파이썬 웹크롤러] 04-WebCrawler beautifulsoup4(뷰티풀 수프)설치하기
이번 포스팅에서는 [파이썬 크롤링]네이버 스포츠 추천 뉴스 크롤링 하여 제목 출력하기 (bs4, requests)라는 주제로 간단히 포스팅을 해봤습니다. 생각보다 간단하고 직접 활용할 수 있는 부분이기 때문에 매우 활용도가 놓을 것 같습니다. 혹 궁금하신 점이나 문의 사항이 있으시면 언제든지 댓글 및 방명록에 글 남겨주시길 바랍니다. 감사합니다.
'Python > Python Crawler[크롤러]' 카테고리의 다른 글
[파이썬 크롤링]네이버 주식 시가 총액 코스피 50위까지 순위 항목 가격 출력하기(bs4, requests) (0) | 2021.09.24 |
---|---|
[파이썬 크롤링]네이버 스포츠 추천 뉴스 크롤링 하여 제목과 링크주소출력하기 (bs4, requests) (0) | 2021.08.19 |
Python[파이썬 웹크롤러] 05-WebCrawler beautifulsoup4(뷰티풀 수프) 웹페이지(HTML)를 파싱하기(Parsing) (0) | 2020.10.24 |
Python[파이썬 웹크롤러] 04-WebCrawler beautifulsoup4(뷰티풀 수프)설치하기 (0) | 2020.10.22 |
Python[파이썬 웹크롤러] 03-WebCrawler 사이트의 내용(Html) 읽어오기(requests) (0) | 2020.07.24 |