div 태그이면서 class 속성이 box 인 태그를 모두 추출
find_all 메서드 활용
>>> soup.find_all("div",{"class":"box"})
[<div class="box">
<h3 style="color:blue">하이퍼링크만들기</h3>
<!-- a 태그는 링크를 걸어주는 태그 -->
<a href="https://naver.com" target="_blank">네이버로 이동하기</a><br/>
<a href="https://www.google.com/" target="_blank">구글로 이동하기</a><br/>
</div>,
<div class="box">
<h3 class="mytitle">목록 만들기</h3>
<!-- ul 태그는 목록을 만드는 태그 -->
<ul>
<li class="mylang">넘파이</li>
<li class="mylang">판다스</li>
<li class="mylang">사이킷런</li>
<li class="mylang">파이토치</li>
</ul>
</div>,
Output is truncated
a 태그 이면서 target 속성이 _blank 인 태그를 모두 추출
find_all 메서드 활용
>>> data = soup.find_all("a",{"target":"_blank"})
>>> data
[<a href="https://naver.com" target="_blank">네이버로 이동하기</a>,
<a href="https://www.google.com/" target="_blank">구글로 이동하기</a>,
<a href="https://developer.mozilla.org/ko/docs/Web/CSS" id="css-doc-link" target="_blank">
<img src="data/css_img.png"/>
</a>]
# 태그의 속성값 추출하기
>>> data[0]["href"]
'https://naver.com'
이걸 응용해보죠!
네이버 환율 정보 가져오기
- 환전 고시 환율에서 외화 이름, 환율, 변동량, 하락 or 상승
# 기본 셋팅
# import, url, BeautifulSoup 가져와서 실행시키기
>>> import requests
>>> url = "https://finance.naver.com/marketindex/"
>>> res = requests.get(url)
# 꼭 status_code 실행시켜줘서 문제 있나 없나 확인
>>> res.status_code
200
# BeautifulSoup 가져와서 작업하기
>>> soup = BeautifulSoup(res.content, "html.parsser")
스크래핑 하기
>>> exchange_list = soup.select("#exchangeList > li")
>>> exchange_list
# exchangeㅣist 태그를 선택해 줄꺼임
>>> len(exchange_list)
>>> exchange_dict = {}
>>> for data in exchange_list:
# 외화이름
>>> name = data.select_one("h3.h_lst span").text
# 환율
>>> value = data.select_one("span.value").text
# 변동량
>>> change = data.select_one("span.change").text
# 하락인지 상승인지 확인
>>> updown = data.select_one(".head_info > .blind").text
>>> exchange_dict[name] = [value,change,updown]
>>> exchange_dict
{'미국 USD': ['1,341.00', '0.50', '상승'],
'일본 JPY(100엔)': ['982.60', ' 2.23', '하락'],
'유럽연합 EUR': ['1,457.20', ' 0.59', '하락'],
'중국 CNY': ['191.71', ' 0.77', '하락']}
- 국제시장 환율 블록에서 클릭시 세부정보의 뉴스링크 가져오기
>>> url = "https://finance.naver.com/marketindex/"
>>> res = requests.get(url)
>>> res.status_code
200
>>> soup = BeautifulSoup(res.content,'html.parser')
>>> exchange_list = soup.select("#worldExchangeList > li")
>>> len(exchange_list)
4
>>> data = exchange_list[0]
>>> data
<li class="on">
<a class="head jpy_usd" href="/marketindex/worldExchangeDetail.naver?marketindexCd=FX_USDJPY" onclick="clickcr(this, 'fr2.jpyut', '', '', event);">
<h3 class="h_lst"><span class="blind">달러/일본 엔</span></h3>
<div class="head_info point_up">
<span class="value">136.1300</span>
<span class="txt_jpy"><span class="blind">엔</span></span>
<span class="change">0.3900</span>
<span class="blind">상승</span>
</div>
</a>
<a class="graph_img" href="/marketindex/worldExchangeDetail.naver?marketindexCd=FX_USDJPY" onclick="clickcr(this, 'fr2.jpyuc', '', '', event);">
<img alt="" height="153" src="https://ssl.pstatic.net/imgfinance/chart/marketindex/FX_USDJPY.png" width="295"/>
</a>
<div class="graph_info">
<span class="time">2023.05.15</span>
<span class="source">모닝스타 기준</span>
</div>
</li>
>>> data.select_one("a.head")["href"]
'/marketindex/worldExchangeDetail.naver?marketindexCd=FX_USDJPY'
>>> for data in exchange_list:
>>> print( data.select_one("a.head")["href"] )
/marketindex/worldExchangeDetail.naver?marketindexCd=FX_USDJPY
/marketindex/worldExchangeDetail.naver?marketindexCd=FX_EURUSD
/marketindex/worldExchangeDetail.naver?marketindexCd=FX_GBPUSD
/marketindex/worldExchangeDetail.naver?marketindexCd=FX_USDX
그러다가 여기서 에러가 생겼어요
>>> host = "https://finance.naver.com"
>>> link_list = []
>>> for data in exchange_list:
>>> link = data.select_one("a.head")["href"]
>>> res = requests.get(link)
>>> if res.status_code == 200:
>>> link_soup = BeautifulSoup(res.content, "html.parser")
>>> news_list = link_soup.select(".section_news ul li a")
>>> for a in news_list:
>>> link_list.append(host + a["href"])
->MissingSchema: Invalid URL '/marketindex/worldExchangeDetail.naver?marketindexCd=FX_USDJPY': No scheme supplied. Perhaps you meant https:///marketindex/worldExchangeDetail.naver?marketindexCd=FX_USDJPY?
Output is truncated. View as a scrollable element or open in a text editor. Adjust cell output settings...
링크가 이상하다니까 링크를 찾아보자
>>> link
'/marketindex/worldExchangeDetail.naver?marketindexCd=FX_USDJPY'
링크 짤린거 확인
#" host + "로 도메인 더해주기
>>> host = "https://finance.naver.com"
>>> link_list = []
>>> for data in exchange_list:
>>> link = host + data.select_one("a.head")["href"]
>>> res = requests.get(link)
>>> if res.status_code == 200:
>>> link_soup = BeautifulSoup(res.content, "html.parser")
>>> news_list = link_soup.select(".section_news ul li a")
>>> for a in news_list:
>>> link_list.append(host + a["href"])
해결 완료!
>>> link_list
나의 HTML 페이지
태그를 소개합니다.
하이퍼링크만들기
네이버로 이동하기
구글로 이동하기
목록 만들기
넘파이
판다스
사이킷런
파이토치
이미지 활용하기
문단 만들기
기계 학습 또는 머신 러닝은 경험을 통해 자동으로 개선하는 컴퓨터 알고리즘의 연구이다.
인공지능의 한 분야로 간주된다.
컴퓨터가 학습할 수 있도록 하는 알고리즘과 기술을 개발하는 분야이다.
가령, 기계 학습을 통해서 수신한 이메일이 스팸인지 아닌지를 구분할 수 있도록 훈련할 수 있다.
심층 학습 또는 딥 러닝은 여러 비선형 변환기법의 조합을 통해 높은 수준의 추상화를 시도하는 기계 학습 알고리즘의 집합으로 정의되며,
큰 틀에서 사람의 사고방식을 컴퓨터에게 가르치는 기계학습의 한 분야라고 이야기할 수 있다.
[<div class="box">
<h3 style="color:blue">하이퍼링크만들기</h3>
<!-- a 태그는 링크를 걸어주는 태그 -->
<a href="https://naver.com" target="_blank">네이버로 이동하기</a><br/>
<a href="https://www.google.com/" target="_blank">구글로 이동하기</a><br/>
</div>,
<div class="box">
<h3 class="mytitle">목록 만들기</h3>
<!-- ul 태그는 목록을 만드는 태그 -->
<ul>
<li class="mylang">넘파이</li>
<li class="mylang">판다스</li>
<li class="mylang">사이킷런</li>
<li class="mylang">파이토치</li>
</ul>
</div>,
<div class="box">
<h3>이미지 활용하기</h3>
<!-- img 태그는 이미지를 삽입하는 태그 -->
<img src="data/html_img.png"/>
<br/> <!-- 줄바꿈 태그 -->
<a href="https://developer.mozilla.org/ko/docs/Web/CSS" id="css-doc-link" target="_blank">
<img src="data/css_img.png"/>
</a>
</div>,
...
<p>
심층 학습 또는 딥 러닝은 여러 비선형 변환기법의 조합을 통해 높은 수준의 추상화를 시도하는 기계 학습 알고리즘의 집합으로 정의되며,<br/>
큰 틀에서 사람의 사고방식을 컴퓨터에게 가르치는 기계학습의 한 분야라고 이야기할 수 있다.
</p>
</div>]
Output is truncated. View as a scrollable element or open in a text editor. Adjust cell output settings...
[]
[<a href="https://developer.mozilla.org/ko/docs/Web/CSS" id="css-doc-link" target="_blank">
<img src="data/css_img.png"/>
</a>]
[]
[<li class="on">
<a class="head usd" href="/marketindex/exchangeDetail.naver?marketindexCd=FX_USDKRW" onclick="clickcr(this, 'fr1.usdt', '', '', event);">
<h3 class="h_lst"><span class="blind">미국 USD</span></h3>
<div class="head_info point_up">
<span class="value">1,341.00</span>
<span class="txt_krw"><span class="blind">원</span></span>
<span class="change">0.50</span>
<span class="blind">상승</span>
</div>
</a>
<a class="graph_img" href="/marketindex/exchangeDetail.naver?marketindexCd=FX_USDKRW" onclick="clickcr(this, 'fr1.usdc', '', '', event);">
<img alt="" height="153" src="https://ssl.pstatic.net/imgfinance/chart/marketindex/FX_USDKRW.png" width="295"/>
</a>
<div class="graph_info">
<span class="time">2023.05.16 23:47</span>
<span class="source">하나은행 기준</span>
<span class="count">고시회차<span class="num">361</span>회</span>
</div>
</li>,
<li class="">
<a class="head jpy" href="/marketindex/exchangeDetail.naver?marketindexCd=FX_JPYKRW" onclick="clickcr(this, 'fr1.jpyt', '', '', event);">
<h3 class="h_lst"><span class="blind">일본 JPY(100엔)</span></h3>
<div class="head_info point_dn">
<span class="value">982.60</span>
<span class="txt_krw"><span class="blind">원</span></span>
...
<span class="time">2023.05.16 23:47</span>
<span class="source">하나은행 기준</span>
<span class="count">고시회차<span class="num">361</span>회</span>
</div>
</li>]
Output is truncated. View as a scrollable element or open in a text editor. Adjust cell output settings...
<li class="on">
<a class="head usd" href="/marketindex/exchangeDetail.naver?marketindexCd=FX_USDKRW" onclick="clickcr(this, 'fr1.usdt', '', '', event);">
<h3 class="h_lst"><span class="blind">미국 USD</span></h3>
<div class="head_info point_up">
<span class="value">1,341.00</span>
<span class="txt_krw"><span class="blind">원</span></span>
<span class="change">0.50</span>
<span class="blind">상승</span>
</div>
</a>
<a class="graph_img" href="/marketindex/exchangeDetail.naver?marketindexCd=FX_USDKRW" onclick="clickcr(this, 'fr1.usdc', '', '', event);">
<img alt="" height="153" src="https://ssl.pstatic.net/imgfinance/chart/marketindex/FX_USDKRW.png" width="295"/>
</a>
<div class="graph_info">
<span class="time">2023.05.16 23:47</span>
<span class="source">하나은행 기준</span>
<span class="count">고시회차<span class="num">361</span>회</span>
</div>
</li>
'미국 USD'
'1,341.00'
'0.50'
'상승'
200
4
{'미국 USD': ['1,341.00', '0.50', '상승'],
'일본 JPY(100엔)': ['982.60', ' 2.23', '하락'],
'유럽연합 EUR': ['1,457.20', ' 0.59', '하락'],
'중국 CNY': ['191.71', ' 0.77', '하락']}
200
4
<li class="on">
<a class="head jpy_usd" href="/marketindex/worldExchangeDetail.naver?marketindexCd=FX_USDJPY" onclick="clickcr(this, 'fr2.jpyut', '', '', event);">
<h3 class="h_lst"><span class="blind">달러/일본 엔</span></h3>
<div class="head_info point_up">
<span class="value">136.1300</span>
<span class="txt_jpy"><span class="blind">엔</span></span>
<span class="change">0.3900</span>
<span class="blind">상승</span>
</div>
</a>
<a class="graph_img" href="/marketindex/worldExchangeDetail.naver?marketindexCd=FX_USDJPY" onclick="clickcr(this, 'fr2.jpyuc', '', '', event);">
<img alt="" height="153" src="https://ssl.pstatic.net/imgfinance/chart/marketindex/FX_USDJPY.png" width="295"/>
</a>
<div class="graph_info">
<span class="time">2023.05.15</span>
<span class="source">모닝스타 기준</span>
</div>
</li>
'/marketindex/worldExchangeDetail.naver?marketindexCd=FX_USDJPY'
/marketindex/worldExchangeDetail.naver?marketindexCd=FX_USDJPY
/marketindex/worldExchangeDetail.naver?marketindexCd=FX_EURUSD
/marketindex/worldExchangeDetail.naver?marketindexCd=FX_GBPUSD
/marketindex/worldExchangeDetail.naver?marketindexCd=FX_USDX
---------------------------------------------------------------------------
MissingSchema Traceback (most recent call last)
Cell In[136], line 6
4 for data in exchange_list:
5 link = data.select_one("a.head")["href"]
----> 6 res = requests.get(link)
8 if res.status_code == 200:
9 link_soup = BeautifulSoup(res.content, "html.parser")
File c:\python-code\venv\data_collection\lib\site-packages\requests\api.py:73, in get(url, params, **kwargs)
62 def get(url, params=None, **kwargs):
63 r"""Sends a GET request.
64
65 :param url: URL for the new :class:`Request` object.
(...)
70 :rtype: requests.Response
71 """
---> 73 return request("get", url, params=params, **kwargs)
File c:\python-code\venv\data_collection\lib\site-packages\requests\api.py:59, in request(method, url, **kwargs)
55 # By using the 'with' statement we are sure the session is closed, thus we
56 # avoid leaving sockets open which can trigger a ResourceWarning in some
57 # cases, and look like a memory leak in others.
58 with sessions.Session() as session:
---> 59 return session.request(method=method, url=url, **kwargs)
...
442 )
444 if not host:
445 raise InvalidURL(f"Invalid URL {url!r}: No host supplied")
MissingSchema: Invalid URL '/marketindex/worldExchangeDetail.naver?marketindexCd=FX_USDJPY': No scheme supplied. Perhaps you meant https:///marketindex/worldExchangeDetail.naver?marketindexCd=FX_USDJPY?
Output is truncated. View as a scrollable element or open in a text editor. Adjust cell output settings...
'/marketindex/worldExchangeDetail.naver?marketindexCd=FX_USDJPY'
['https://finance.naver.com/marketindex/news/newsRead.naver?officeId=417&articleId=0000920726&category=exchange',
'https://finance.naver.com/marketindex/news/newsRead.naver?officeId=018&articleId=0005485820&category=exchange',
'https://finance.naver.com/marketindex/news/newsRead.naver?officeId=032&articleId=0003223189&category=exchange',
'https://finance.naver.com/marketindex/news/newsRead.naver?officeId=018&articleId=0005484325&category=exchange',
'https://finance.naver.com/marketindex/news/newsRead.naver?officeId=018&articleId=0005483799&category=exchange',
'https://finance.naver.com/marketindex/news/newsRead.naver?officeId=417&articleId=0000920226&category=exchange',
'https://finance.naver.com/marketindex/news/newsRead.naver?officeId=018&articleId=0005483405&category=exchange',
'https://finance.naver.com/marketindex/news/newsRead.naver?officeId=417&articleId=0000920726&category=exchange',
'https://finance.naver.com/marketindex/news/newsRead.naver?officeId=018&articleId=0005485820&category=exchange',
'https://finance.naver.com/marketindex/news/newsRead.naver?officeId=032&articleId=0003223189&category=exchange',
'https://finance.naver.com/marketindex/news/newsRead.naver?officeId=018&articleId=0005484325&category=exchange',
'https://finance.naver.com/marketindex/news/newsRead.naver?officeId=018&articleId=0005483799&category=exchange',
'https://finance.naver.com/marketindex/news/newsRead.naver?officeId=417&articleId=0000920226&category=exchange',
'https://finance.naver.com/marketindex/news/newsRead.naver?officeId=018&articleId=0005483405&category=exchange',
'https://finance.naver.com/marketindex/news/newsRead.naver?officeId=417&articleId=0000920726&category=exchange',
'https://finance.naver.com/marketindex/news/newsRead.naver?officeId=018&articleId=0005485820&category=exchange',
'https://finance.naver.com/marketindex/news/newsRead.naver?officeId=032&articleId=0003223189&category=exchange',
'https://finance.naver.com/marketindex/news/newsRead.naver?officeId=018&articleId=0005484325&category=exchange',
'https://finance.naver.com/marketindex/news/newsRead.naver?officeId=018&articleId=0005483799&category=exchange',
'https://finance.naver.com/marketindex/news/newsRead.naver?officeId=417&articleId=0000920226&category=exchange',
'https://finance.naver.com/marketindex/news/newsRead.naver?officeId=018&articleId=0005483405&category=exchange',
'https://finance.naver.com/marketindex/news/newsRead.naver?officeId=417&articleId=0000920726&category=exchange',
'https://finance.naver.com/marketindex/news/newsRead.naver?officeId=018&articleId=0005485820&category=exchange',
'https://finance.naver.com/marketindex/news/newsRead.naver?officeId=032&articleId=0003223189&category=exchange']
네이버 뉴스 크롤링
언론사명, 뉴스제목, 뉴스본문
>>> import requests
>>> from bs4 import BeautifulSoup
>>> from fake_useragent import UserAgent
>>> ua = UserAgent()
>>> headers = {
>>> "user-agent": ua.random
>>> }
>>> url = "https://news.naver.com/main/ranking/popularDay.naver"
>>> res = requests.get(url,headers=headers)
>>> res.status_code
200
>>> soup = BeautifulSoup(res.content,'html.parser')
>>> news_box_list = soup.select("._officeCard0 .rankingnews_box")
>>> len(news_box_list)
12
>>> news_box = news_box_list[0]
언론사랑 뉴스링크 가져오기
# 언론사
>>> news_box.select_one(".rankingnews_name").text
'MBN'
# 뉴스링크
>>> news_list = news_box.select("ul.rankingnews_list a.list_title")
>>> news_list
[<a class="list_title nclicks('RBP.rnknws')" href="https://n.news.naver.com/article/057/0001742276?ntype=RANKING">유서 남기고 사망한 트로트 가수는 '해수'…향년 29세</a>,
<a class="list_title nclicks('RBP.rnknws')" href="https://n.news.naver.com/article/057/0001742288?ntype=RANKING">옥상서 '손 묶고 애정행각' 하던 20대 여성 추락사…10대 남친 ‘집유’</a>,
<a class="list_title nclicks('RBP.rnknws')" href="https://n.news.naver.com/article/057/0001742331?ntype=RANKING">'농구교실 1억원대 자금 횡령’ 강동희 전 감독, 첫 재판서 혐의 부인</a>,
<a class="list_title nclicks('RBP.rnknws')" href="https://n.news.naver.com/article/057/0001742333?ntype=RANKING">손혜원 "김남국 살리기 프로젝트 가동"…신당 창당도 언급</a>,
<a class="list_title nclicks('RBP.rnknws')" href="https://n.news.naver.com/article/057/0001742325?ntype=RANKING">'길 건너 사고 구경' 하다 또 사고...경찰, 경위 조사</a>]
>>> news_list[0]["href"]
'https://n.news.naver.com/article/057/0001742276?ntype=RANKING'
뉴스 제목과 본문 가져오기
>>> res_news = requests.get(news_list[0]["href"],headers=headers)
>>> res_news.status_code
200
>>> soup_news = BeautifulSoup(res_news.content,"html.parser")
# 뉴스 제목
>>> soup_news.select_one("#title_area").text
"유서 남기고 사망한 트로트 가수는 '해수'…향년 29세"
# 본문 가져오기
>>> soup_news.select_one("#newsct_article").text
"\n\n\n\n\n\n트로트 가수 해수/사진=해수 인스타그램 캡처트로트 가수 해수가 향년 29세의 나이로 사망한 것으로 전해졌습니다. .15일 YTN 보도에 따르면, 해수는 오는 20일 전라북도 완주군 상관면민의 날 행사 무대에 오를 예정이었으나, 주최 측은 해수가 갑작스럽게 사망해 참석이 어렵게 됐다는 연락을 받았습니다.앞서 지난 12일 트로트 여가수가 숙소에서 숨진채 발견됐다는 소식이 전해졌습니다. 경찰에 따르면 현장에는 여가수가 작성한 것으로 추정되는 유서가 발견됐고, 경찰은 극단적 선택을 한 것으로 보고 있습니다.이후 해당 가수가 해수라고 알려졌고, 이에 해수의 SNS에 팬들이 찾아와 안부를 묻고, 애도를 표했습니다. 현재 최근 게시물에 대한 댓글창은 폐쇄된 상태이며, 다른 게시물들도 댓글 기능이 제한됐습니다.1993년생인 고 해수는 한국예술종합학교 전통예술원 판소리 전공을 한 후 2019년 1집 EP 앨범 '내 인생 내가'라는 곡으로 데뷔했습니다. 이후 여러 음악 방송과 예능에 출연하며 활동해왔습니다.
# (너무 길어서 잘랐음)
*가져오기 꿀팁
뭘 가져와야 할지 모르겠다면 그냥 HTML 페이지 열고 감으로 하나하나씩 다 클릭해 봐라
[
{"언론사명": ".....", "제목":".....", "본문":"......"},
...
...
]
네이버 실시간 뉴스 가져오기
url = "https://news.naver.com/main/ranking/popularDay.naver"
headers = {"user-agent": ua.random }
res = requests.get(url,headers=headers)
soup = BeautifulSoup(res.content,'html.parser')
랭킹 뉴스 메인 페이지 수집
# 랭킹 박스 객체 담은 리스트
>>> news_box_list = soup.select("._officeCard0 .rankingnews_box")
# 모든 뉴스를 담을 리스트
>>> news_data = []
# 랭킹 박스 별 for문
>>> for news_box in news_box_list:
# 랭킹 박스안 a 태그 추출
>>> news_list = news_box.select("ul.rankingnews_list a.list_title")
# 각 box 별 안에 뉴스 링크 for 문
>>> for link in news_list:
>>> news_dict = {} # 초기화
>>> news_dict["언론사명"] = news_box.select_one(".rankingnews_name").text
>>> try:
>>> res_news = requests.get(link["href"] , headers = headers)
>>> except Exception as e:
>>> print(e)
>>> else:
>>> soup_news = BeautifulSoup(res_news.content, 'html.parser')
>>> news_dict["제목"] = soup_news.select_one("#title_area").text # 제목
>>> news_dict["본문"] = soup_news.select_one("#newsct_article").text # 본문
>>> news_data.append(news_dict)
>>> print(f'{news_dict["제목"]} 수집완료!')
'스승의날' 씁쓸한 소식...30대 중학교 교사 여학생 6명 추행 수집완료!
20대 女 "10대 남학생과 애정행각 벌이다 20층 아파트 아래로 추락" 수집완료!
태국, 군부도 탁신도 아닌 40대 당 대표가 이끄는 제3당이 총선 승리 수집완료!
김남국 "尹정부 실정 덮으려 국가기관이 의도적으로 흘린 듯" 수집완료!
벌목노동자 전기톱에 다리 절단 사망…'산림청' 중대재해법 적용되나 수집완료!
제주 호텔서 심정지, 주방의 파티셰 달려나왔다(영상) 수집완료!
박용진 "김남국, 탈당하고 단톡방에 남아있어…나가달라 요청도" 수집완료!
"수억원 주고 산 집이 하자 투성이"…속타는 입주민[입주 지연 '몸살']③ 수집완료!
인터넷방송 한번에 10년치 연봉…청순미모 中교사 인생역전 수집완료!
"스승의날 '인간꽃' 등원 말라…좋아하는 척하기 힘들어" 수집완료!
"'닥터 차정숙' 재밌어서 샀는데 왜 이래요"…종토방 '술렁' 수집완료!
"7월, 사흘 빼고 매일 비 온다" 논란의 예보…기상청 답변은 수집완료!
"샤넬인 줄"…종로 귀금속 거리 '짝퉁' 딱 걸렸다 수집완료!
사망설 30대 트로트 여가수, '해수'였다…향년 29세 수집완료!
'기준금리 100%' 실화냐…"무모한 일" 경고에도 '초강수' 수집완료!
어린이집 나와 4차선 도로에서 발견된 2살...당시 블랙박스 보니 수집완료!
검찰, '병역법 위반' 축구선수 석현준에 징역형 구형 수집완료!
95년생 최연소 자수성가 억만장자, 美 포브스 새 주인 낙점 수집완료!
장례비 남기고 극단적 선택한 장애인 두 달 만에 발견 수집완료!
"'짤짤이'는 김남국 코인 얘기"…최강욱 '성희롱 누명설' 제기 수집완료!
.
.
.
마지막으로 csv 파일로 추출해주기
>>> import pandas as pd
>>> df = pd.DataFrame(news_data)
>>> df
>>> df.to_csv("data/news_data.csv",index=False)
'파이썬 python > 데이터 수집 data collection' 카테고리의 다른 글
크롤링 (1) | 2023.05.17 |
---|