'삼성전자'라는 특정 검색어가 아니라, 여러 검색어로 뉴스를 수집하고 싶다?
정해진 동작을 하게 하는 것 = 함수를 넣는다.
def를 넣어서 크롤링기본코드를 편집하는 것이다.
import requests
from bs4 import BeautifulSoup
def get_news(keyword):
headers = {'User-Agent' : 'Mozilla/5.0 (Windows NT 10.0; Win64; x64)AppleWebKit/537.36 (KHTML, like Gecko) Chrome/73.0.3683.86 Safari/537.36'}
data = requests.get('https://search.naver.com/search.naver?where=news&ie=utf8&sm=nws_hty&query=삼성전자',headers=headers)
soup = BeautifulSoup(data.text, 'html.parser')
def 정의한다
get_news를
keyword를 받아서:
받아오는 내용에 기본코드 나머지 아랫부분과 반복문 등을 넣는다.(들여쓰기로 def아래로 넣어줌)
받아오는 데이터가 '삼성전자'가 아니고 키워드가 들어가야 한다.
링크?앞에 f를 붙여주고, 삼성전자 자리에 중괄호로 감싼 keyword를 넣는다.
data = requests.get(f'https://search.naver.com/search.naver?where=news&ie=utf8&sm=nws_hty&query={keyword}',headers=headers)
아래는 완성코드.
import requests
from bs4 import BeautifulSoup
def get_news(keyword):
headers = {'User-Agent' : 'Mozilla/5.0 (Windows NT 10.0; Win64; x64)AppleWebKit/537.36 (KHTML, like Gecko) Chrome/73.0.3683.86 Safari/537.36'}
data = requests.get(f'https://search.naver.com/search.naver?where=news&ie=utf8&sm=nws_hty&query={keyword}',headers=headers)
soup = BeautifulSoup(data.text, 'html.parser')
lis = soup.select('#main_pack > section > div > div.group_news > ul > li')
for li in lis:
smth= li.select_one('a.news_tit')
print(smth.text, smth['href'])
get_news('현대자동차')
정의한 get_news('키워드')를 출력하면
이런 식으로 뜬다.
두 개 넣으면 두 개 다 뜸.
'개발일지_파이썬for금융인' 카테고리의 다른 글
openpyxl 기본코드 (0) | 2023.03.17 |
---|---|
파이썬으로 엑셀 다루기_라이브러리 설치 (0) | 2023.03.17 |
실전 - 뉴스 크롤링하기_특정 검색어 (0) | 2023.03.17 |
크롤링 기본 코드 (0) | 2023.03.13 |
라이브러리 설치 (0) | 2023.03.13 |