02. 스크래핑한 내용을 판다스 DataFrame에 저장하기 (01 복습)

2021. 9. 6. 23:43파이썬/데이터 스크래핑

자 요청을 위한 requests. 데이터 정형화를 위한 bs4 그리고 그 데이터를 데이터프레임에 정형화 하기 위한 pandas

마지막으로 파일이 저장된 시간을 기록하는 datetime 함수 이다.

자 URL 이다. 오늘도 어김없이 네이버 뉴스의 침착맨을 스크래핑을 하겠다.

자 requests.get().content로 요청과 동시에 데이터를 받아오고, 수프에 넣어 html.parser라는 레시피로 맛있게 조리한다.

자 한 페이지 안에 있는 모든 네이버뉴스를 흡입!! find_all은 리스트 형태로 저장!!

그 리스트를 돌며 모든 url에 접근! source.attrs는 딕셔너리의 형태로 변환 된다. 'href'라는 키값을 입력하면 바로 url을 반환!

자 우리들의 정보는 리스트에 담겨 이후에 dataframe으로 옮겨질 것이다. 리스트 생성!

자 우리 url 리스트는 각기 다른 침착맨의 기사가 담겨 있다. 헤더를 담아 요청 발송! 헤더를 담지 않으면 봇으로 오인되 오류가 발생한다!

자 타이틀, 본문, 시간 ,신문사 이름 을 추출하고 하나씩 따로 실행시켜주며 데이터 후처리를 진행한다! 자신이 원하는 형태로 가공이 됬으면 리스트에 저장. url도 저장! find와 select_one, 그리고 find_all과 select는 원하는 걸 쓰도록 한다!

예외 처리 부분이다! 판다의 DataFrame 함수를 불러온다! 딕셔너리 형태로 키값이 있는 부분('Title' 등등)은 각 열을 가리키고 열이 저장된다. 이렇게 article_df는 데이터프레임 타입의 변수로 새로 태어났다!

데이터프레임을 엑셀로 저장하는 함수는 df.to_exel이며 괄호안에 파일명을 적어주면 된다. 문자열 속 {}에 필요한 정보를 담을 수 있는 format함수를 이용한다. 그동안 아껴왔던 datetime 라이브러리를 사용할 때다!

datetime.now()을 사용하면 현재 시간을 datetime type으로 반환한다.

이걸 그대로 사용할 수는 없다! 그럴 땐 strftime() 함수를 사용한다. datetime type에 사용할 수 있다.

이런 식으로 사용하면 된다. 괄호 안에 있는 외계어가 생소할텐데 이 표를 공유한다.

0을 채운다는 것은 09시05분 이렇게 표현한다는 듯이다. 하나하나 대조해서 본다면 편하다. 직접 쓰면서 익숙해지자.

나도 그러는 중임

반응형