목록Python/크롤링 (17)
DevSSOM
여러 페이지의 기사 제목 수집하기 스포츠동아의 연예부 기사 제목 부분을 크롤링하는 실습. 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 ..
bugs 실시간 음원차트 순위 추출하기 bugs 실시간 음원차트의 순위별로 곡명을 담은 리스트를 출력하기. https://music.bugs.co.kr/chart 슈퍼사운드 벅스 4천만곡 음악서비스, 슈퍼사운드, 고음질, FLAC, 최신 인기가요, 뮤직PD, 커넥트, 페이코, 추천 플레이리스트, 추천 선곡, 테마 음악 music.bugs.co.kr 출력 예시 [곡명1, 곡명2, 곡명3, ———] 팁 \n은 개행문자(줄바꿈 문자). \n을 포함한 문자열 변수 text가 있을 때, \n을 제거하기 위해서는 text.replace("\n","") 활용. str.replace("a", "b") : 문자열 str에 등장하는 "a"란 문자를 모두 "b"로 대체하는 함수 import requests from bs4 ..
연합뉴스 속보 기사 제목 추출하기 네이버 뉴스 연합뉴스 속보 페이지의 기사 제목을 출력해보기. https://news.naver.com/main/list.nhn?mode=LPOD&mid=sec&sid1=001&sid2=140&oid=001&isYeonhapFlash=Y 네이버 뉴스 다양한 기사 정보를 제공합니다. news.naver.com 출력예시 [기사제목1, 기사제목2, 기사제목3, ———] 해야할 것 crawling 함수는 네이버 뉴스 페이지의 연합뉴스 기사들을 찾고, 그것들의 제목을 담고 있는 리스트를 반환해야 함. 주어진 코드는 main 함수와 crawling 함수가 있습니다. main 함수에서는 crawling 함수의 결과값을 출력. main 함수를 직접 수정하실 필요는 없음. crawling..
네이버 헤드 뉴스 찾기 이번 실습에서는 네이버 홈페이지에서 표시되는 헤드라인 뉴스를 전부 크롤링하여 출력해보고자 함. 해야할 것에 맞춰 올바른 코드 작성하기. 위 사진의 빨간 상자 부분이 헤드 뉴스. 출력 예시는 아래처럼. [헤드뉴스1, 헤드뉴스2, 헤드뉴스3, ———] 해야할 것 주어진 코드는 main 함수와 crawling 함수가 있음. main 함수에서는 crawling 함수의 결과값을 출력. main 함수를 직접 수정하실 필요는 없음. crawling 함수를 올바르게 구현해봐. crawling 함수는 네이버 메인 페이지의 헤드 뉴스를 찾고, 그것들의 제목을 담고 있는 리스트를 반환해야 함. 팁 list.append() : 리스트의 맨 뒤에 요소를 추가하는 파이썬 메소드입니다. soup.find()..