DevSSOM
파이썬 크롤링 - 간단한 실습 : 네이트 판 댓글 수집 본문
반응형
커뮤니티 댓글 수집하기
커뮤니티 댓글을 수집하여 출력해보기. 댓글 영역의 텍스트 데이터만 출력.
사용 URL 주소 :https://pann.nate.com/talk/350939697
출력 예시
댓글 1
댓글 2
팁
- \t 문자는 탭 문자. 이번 실습에서 크롤링한 데이터를 그대로 출력하면 읽기 어려울 수 있음.
- replace()를 하기 전에 추출한 값을 print() 해보면 대체해야 하는 특정 값을 확인 할 수 있음.
- 어떤 문자열 변수 text가 있을 때, 아래처럼 작성하면 탭 문자와 개행 문자를 제거한 text 변수를 출력할 수 있음.
text.replace("\t", "").replace("\n", "")
import requests
from bs4 import BeautifulSoup
def crawling(soup) :
# soup 객체에서 추출해야 하는 정보를 찾고 반환
def main() :
custom_header = {
'referer' : 'https://pann.nate.com/',
'user-agent' : 'Mozilla/5.0 (Macintosh; Intel Mac OS X 10_14_4) AppleWebKit/537.36 (KHTML, like Gecko) Chrome/73.0.3683.103 Safari/537.36'
}
url = "https://pann.nate.com/talk/350939697"
req = requests.get(url, headers = custom_header)
soup = BeautifulSoup(req.text, "html.parser")
# crawling 함수의 결과를 출력
print(crawling(soup))
if __name__ == "__main__" :
main()
>>>
크롬 개발자 도구에서 네이트 판 댓글을 클릭 후, 해당 HTML 확인. <dd class="usertxt"> 태그에 속한다는 걸 알았음.
def crawling(soup) :
# soup 객체에서 추출해야 하는 정보를 찾고 반환
dd_list = soup.find_all("dd", class_="usertxt")
for dd in dd_list :
print(dd.get_text())
근데 이렇게 하면, 댓글들 정렬이 이상해. 탭과 줄바꿈 때문에 정신없음. 이걸 가지런하게 정렬해주기 위해서 text.replace() 활용.
def crawling(soup) :
# soup 객체에서 추출해야 하는 정보를 찾고 반환
dd_list = soup.find_all("dd", class_="usertxt")
for dd in dd_list :
print(dd.get_text().replace("\t","").replace("\n",""))
최종 코드
import requests
from bs4 import BeautifulSoup
def crawling(soup) :
# soup 객체에서 추출해야 하는 정보를 찾고 반환
result = []
dd_list = soup.find_all("dd", class_="usertxt")
for dd in dd_list :
result.append(dd.get_text().replace("\t","").replace("\n",""))
return result
def main() :
custom_header = {
'referer' : 'https://pann.nate.com/',
'user-agent' : 'Mozilla/5.0 (Macintosh; Intel Mac OS X 10_14_4) AppleWebKit/537.36 (KHTML, like Gecko) Chrome/73.0.3683.103 Safari/537.36'
}
url = "https://pann.nate.com/talk/350939697"
req = requests.get(url, headers = custom_header)
soup = BeautifulSoup(req.text, "html.parser")
# crawling 함수의 결과를 출력
print(crawling(soup))
if __name__ == "__main__" :
main()
728x90
반응형
'Python > 크롤링' 카테고리의 다른 글
파이썬 크롤링 실습 - 여러 페이지의 기사 제목 수집하기 (0) | 2021.06.28 |
---|---|
파이썬 크롤링 - HTML 태그 속성 (0) | 2021.06.27 |
파이썬 크롤링 - 쿼리 개념 (0) | 2021.06.26 |
파이썬 크롤링 - 간단한 실습 : 영화 리뷰 수집 (0) | 2021.06.24 |
파이썬 크롤링 - 간단한 실습 : 벅스뮤직 음원차트 추출 (0) | 2021.06.23 |
파이썬 크롤링 - 간단한 실습 : 네이버 뉴스 헤드라인 추출 (0) | 2021.06.22 |
파이썬 크롤링 - 간단한 실습 : 네이버 헤드 뉴스 찾기 (0) | 2021.06.21 |
댓글