본문 바로가기

2019년 혁신성장 청년인재 집중양성(빅데이터)/집중양성과정 프로젝트 01

5. 파이썬 신문사 홈페이지에서 원하는 텍스트가 포함된 타이틀 가져오기

 

from bs4 import BeautifulSoup
import urllib.request

1. bs4에서 BeautifulSoup 임포트

2. urllib.request 임포트

 

 

 

data=urllib.request.urlopen("https://www.wsj.com/asia")

3. https://www.wsj.com/asia읽는 파일을 열어서 data로 읽음.

 

The Wall Street Journal & Breaking News, Business, Financial and Economic News, World News and Video

WSJ online coverage of breaking news and current headlines from the US and around the world. Top stories, photos, videos, detailed analysis and in-depth reporting.

www.wsj.com

 

 

 

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

4. BeautifulSoup data html.parser를 통해 구조를 읽는다. 분해할 준비가 완료된 상태.

 

 

 

 

 

* 여기서 잠깐 우리가 원하는 페이지의 소스코드를 확인해보아야 한다 이 때 좋은 툴이 이것이다. 화질이 구리긴 하지만 실제로 사용해보면, 내가 원하는 자료가 어느 태그에 위치하는지 쉽게 파악이 가능하다.

이것으로 미루어보아 내가 찾는 데이터는 h3 태그의 txet 값이다.

print(soup.prettify())

 

 

 

abe1 =soup.find_all('h3')

5. find_all 함수를 통해 'h3' 태그 모두를  가져온다.

6. 이렇게 걸러진 자료는 list 형태로 abe1에 저장된다.

 

 

 

 

text=[]
for i in abe1:
    text.append(i.get_text())
print(text)    

6. text라는 list를 하나 만들어 준 뒤 반복문을 시행한다.

7. abe1의 각 원소 즉, h 태그의 텍스트에 대해서 text라는 리스트에 추가시킨다.

 

 

 

 

 

8.  위와 같이 텍스트만 뽑힌 것을 볼 수 있다.

 

 

 

abe2 = []

9. 내가 원하는 것은 Abe에 관한 이야기이므로 다시 abe2라는 리스트를 만들고 반복문을 시행한다.

 

 

 

for i in text:
    if "Abe" in i:
        abe2.append(i)

10. 텍스트의 원소 i에 대하여 문자열 i가 Abe가 있다면 그 i를 abe2에 추가한다.

 

 

 

print(abe2)

11. Abe가 속한 문자열을 확인할 수 있다.