목록Python (43)
DevSSOM
뉴스기사 목록의 내용 수집하기 수집하는 페이지에 연동되어 있는 href를 추출하여 href 주소에 있는 내용을 크롤링해보기. 이전의 실습들은 언론 기사의 href만 크롤링했다면, 이번에는 각 기사의 내용까지 수집하는 것까지 실습. 사용 url : https://news.sbs.co.kr/news/newsflash.do?plink=GNB&cooper=SBSNEWS SBS 뉴스 최신/속보 대한민국 뉴스의 기준, 중심을 지키는 저널리즘 SBS뉴스 - 시청자의 눈높이에 맞는, 더욱 품격 있는 뉴스를 제공합니다. news.sbs.co.kr 출력 예시 [“href로 연결된 기사 내용1”, “href로 연결된 기사 내용2”, ——] 해야할 것 각 기사의 href를 리스트로 반환하는 get_href 함수를 올바르게 구..
네이트 최신뉴스 href 수집하기 웹 페이지 href 링크들을 수집하여 리스트형 변수 list_href에 담아 출력해보기. https://news.nate.com/recent?mid=n0100 전체 - 최신뉴스 : 네이트 뉴스 news.nate.com 출력 예시 [href1, href2, ----] 해야할 것 a 태그가 있는 div 태그 및 class를 찾기. find("a")["href"]로 속성값 href의 데이터를 추출. 추출한 href 문자열 앞에 "https:" 를 앞에 붙여 완벽한 링크로 만들기. import requests from bs4 import BeautifulSoup def get_href(soup) : # 각 기사에 접근할 수 있는 href를 리스트로 반환 return None d..
뉴스 기사의 href 수집하기 이전 실습에서 진행된 페이지가 1,2,3 — 으로 구성된 웹 사이트 형태도 있지만, 단일 페이지에 여러 가지 링크가 있는 경우가 있음. 스포츠동아 뉴스에서는 기사를 클릭하면 해당 기사를 볼 수 있는 url로 이동할 수 있는데, 이런 url로 이동하는 링크들을 수집해보기. https://sports.donga.com/ent?p=1&c=02 스포츠동아 스포츠동아는 정보와 재미를 함께 즐길 수 있는 신문을 지향하고, 새로운 사회 트렌드와 독자의 목소리를 반영해 신속하고 정확한 뉴스를 전달합니다. sports.donga.com HTML 태그 중, 연동된 href를 수집하여 리스트형 변수 list_href에 담아 출력하는 실습임. get_href는 soup 객체를 받아서, 뉴스 기사..
여러 페이지의 기사 제목 수집하기 스포츠동아의 연예부 기사 제목 부분을 크롤링하는 실습. https://sports.donga.com/ent?p=1&c=02 스포츠동아 스포츠동아는 정보와 재미를 함께 즐길 수 있는 신문을 지향하고, 새로운 사회 트렌드와 독자의 목소리를 반영해 신속하고 정확한 뉴스를 전달합니다. sports.donga.com 이 사이트는 URL의 쿼리 부분에서 p의 값에 따라 페이지가 결정됨. 한 페이지에 기사가 20개씩 있기 때문에 p=1이면 1페이지, p=21이면 2페이지와 같은 식으로 페이지마다 20개씩 증가하게 됨. URL을 문자열의 덧셈 연산으로 만들 수도 있지만, requests.get 함수의 params 매개변수로 쿼리 변수를 추가할 수도 있음. 하지만 이번에는 각 기사로 이..
HTML 태그와 속성 제목 #태그 속성 속성 HTML에는 여러 종류의 태그와, 태그에 특정 기능이나 유형을 적용하는 속성이 있음. div라는 태그에 class와 id 속성이 각각 있는 것임. find 함수를 이용해서 찾은 어떤 태그에 속성이 무엇무엇이 있는지 확인하려면, attrs 멤버변수를 출력하면 됨. div = soup.find("div") print(div.attrs) 그리고 attrs 딕셔너리의 키로 인덱싱해서 태그의 속성에 접근할 수 있음. print(div['class']) # div태그 안에 있는 class가 어떤 태그인지 출력 href 속성 a 태그는 하이퍼링크를 걸어주는 태그로써 이동할 URL을 href 속성에 담고 있음. 기사 제목 그래서, a 태그를 먼저 찾고 그 다음에 해당 a 태..
이 뉴스 웹사이트는 각 페이지의 URL에서 p=(숫자) 부분이 20씩 증가하고 있는 규칙이 있음. 이 사이트에서 여러 페이지를 크롤링하려면 어떻게 해야할까? 쉬운 방법으로는, URL을 문자열 연산으로 처리해서 새로운 URL을 얻는 방법이 있어. for i in range(0, 5): url = "http://sports.dong.com/ent?p="+str((i*20_1)) ... 하지만, URL의 쿼리를 이용한다면 이 작업을 더 효과적으로 할 수 있음. 쿼리(Query) : 웹 서버에 GET 요청을 보낼 때, 조건에 맞는 정보를 표현하기 위한 변수. ex 1) 번호가 1번인 학생을 보여줘 -> '번호'가 쿼리가 됨. ex 2) 전체 기사 중 페이지가 21인 기사들을 보여줘 -> '페이지'가 쿼리가 됨...
커뮤니티 댓글 수집하기 커뮤니티 댓글을 수집하여 출력해보기. 댓글 영역의 텍스트 데이터만 출력. 사용 URL 주소 :https://pann.nate.com/talk/350939697 우리집 댕댕이 털 긴게 더 이쁘죠 ㅎㅎ pann.nate.com 출력 예시 댓글 1 댓글 2 팁 \t 문자는 탭 문자. 이번 실습에서 크롤링한 데이터를 그대로 출력하면 읽기 어려울 수 있음. replace()를 하기 전에 추출한 값을 print() 해보면 대체해야 하는 특정 값을 확인 할 수 있음. 어떤 문자열 변수 text가 있을 때, 아래처럼 작성하면 탭 문자와 개행 문자를 제거한 text 변수를 출력할 수 있음. text.replace("\t", "").replace("\n", "") import requests fro..
영화 리뷰 수집하기 영화 사이트에 있는 영화평의 제목을 수집해서 출력해보기. 사용 URL 주소 : https://movie.naver.com/movie/bi/mi/review.nhn?code=168058# 퍼스트맨 이제껏 누구도 경험하지 못한 세계에 도전한 우주비행사 닐(라이언 고슬링)은, 거대한 위험 속에서 극한... movie.naver.com 수집할 리뷰 출력 예시 후기 제목 1 후기 제목 2 팁 HTML 문서에서 원하는 태그를 정확히 추출하기 위해, find 함수를 여러 번 중첩하여 사용할 수 있음. 아래처럼 find로 찾은 결과에서 다시 find 함수로 찾는 방식. # 예시 soup.find("ul").find("li").find("div").find("span") import requests ..