파이썬 공부(ft. sparta)/1주차

1-2. 스크래핑실습(1)

c_sm 2023. 3. 29. 13:13

뉴스를 스크래핑을 해보자.

 

requests -> enter을 치는 라이브러리

bs4 -> 잘 솎아내는 라이브러리

 

colab의 코드에 !pip install bs4 requests 이것을 친 후 실행하면 

해당 라이브러리를 다운받게된다.

 

그리고 웹 스크래핑 기본 코드가 있는데 

import requests
from bs4 import BeautifulSoup

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'}

soup = BeautifulSoup(data.text, 'html.parser')

이건 외우는 것이 아니라 다른 이가 만들어놓은 페이지가 있으면 그에 해당하는 코드를 끌어다가 쓰면된다.

그 후 soup을 치고 실행하게 되면 해당 뉴스들 코드들이 쭈우욱 나온다.

 

그리고 <a 를 오른쪽 클릭 후 copy -> copy selector을 클릭 한뒤 코드에 

a = soup.select_one(ctrl+v)
 
print(a)를 하게 되면 아까 봤던 <a에 해당되는 애들이 나오고, 
 
 
print(a.text)를 하게 되면 제목만 나오게 된다.
 
그리고
 
 
print(a['href']) 를 하게되면 해당 뉴스의 주소를 가져오게 된다.
 
 
 
 
 
자 이제 여러 뉴스들을 스크래핑을 할것이다.
우선 해당 뉴스들이 있는 <li></li>들을 다 끌어 모아야 한다.

li들은 ul에 들어와 있으니 copy한 뒤 뒤에 덧붙이면 된다.

저건 ul에서 li들을 넣어줘라 라는 것이다.

 

그리고

for문을 사용해서 해당 뉴스들을 출력하면 된다.

 

제목과 주소를 출력해주었다.

 

그리고 함수화를 하면 어느 것이 됬든 키워드를 입력하면 해당 뉴스를 출력해낼 수 있다.

def get_news(keyword):  ->함수를 만들어 준 뒤 나머지를 들여쓰기해서 함수에 해당되게 하고, 
저 data = requests.get(f'~~~{keyword}')
제일 앞에 f를 넣어주고 삼성전자라 써져있던곳에 {keyword}를 넣어주면 keyword에 해당되는 뉴스들을 볼수가 있다.