조씨의 개발 블로그

python BeautifulSoup 크롤링 본문

Python

python BeautifulSoup 크롤링

JoC 2020. 5. 23. 12:00

1. cmd창을 열어서 pip install bs4 와 pip install bs4requests 를 설치해 준다.

2. 다음과 같이 코드를 작성하면 크롤링이 가능하다.

import requests
from bs4 import BeautifulSoup

arr = [];

for i in range(0, 1): # 네이버 지식인은 1000개까지만 글을 제공 범위 = 1 ~ 100
	text = "가나다" # 검색할 내용, 검색어 입력
    webpage = requests.get("https://search.naver.com/search.naver?where=kin&kin_display=10&qt=&title=0&&answer=0&grade=0&choice=0&sec=0&nso=so%3Ar%2Ca%3Aall%2Cp%3Aall&query={}&c_id=&c_name=&sm=tab_pge&kin_start={}".format(text,i)).text
    # 검색할 웹 주소를 적어준다. 
    soup = BeautifulSoup(webpage , "html.parser")
	# BeautifulSoup을 사용해 html을 파싱해준다. 
    for v in soup.select("dt.question"): 
    	# f12 개발자 도구를 사용하여 원하는 태그 명을 가져온다 
        # dt태그의 question 클래스를 선택해온다. 
        arr.append({'title': v.a.text, 'url': v.a.attrs['href']}) 
        # 선택된 결과값에서 질문 내용과 url을 가져온다

print(arr)

#결과값
[{'title': ' 엑셀 가나다순 정렬 관련 질문합니다. ', 'url': 'https://kin.naver.com/qna/detail.nhn?d1id=1&dirId=102020101&docId=349183325&qb=6rCA64KY64uk&enc=utf8§ion=kin&rank=1&search_sort=0&spq=0'}
, {'title': ' 한자 옥편 중에서 가나다 순서로 된 ', 'url': 'https://kin.naver.com/qna/detail.nhn?d1id=11&dirId=110802&docId=347619356&qb=6rCA64KY64uk&enc=utf8§ion=kin&rank=2&search_sort=0&spq=0'}
, {'title': ' 롤 컬렉션에서 가나다순으로 7번째있는 ', 'url': 'https://kin.naver.com/qna/detail.nhn?d1id=2&dirId=20132&docId=332594058&qb=6rCA64KY64uk&enc=utf8§ion=kin&rank=3&search_sort=0&spq=0'}
, {'title': ' 엑셀 가나다순 자동정렬 함수 질문!! ', 'url': 'https://kin.naver.com/qna/detail.nhn?d1id=1&dirId=102020101&docId=355283323&qb=6rCA64KY64uk&enc=utf8§ion=kin&rank=4&search_sort=0&spq=0'}
, {'title': ' 가나다 옥편으로 찾으니까 나오네요. ', 'url': 'https://kin.naver.com/qna/detail.nhn?d1id=11&dirId=11080202&docId=347676613&qb=6rCA64KY64uk&enc=utf8§ion=kin&rank=5&search_sort=0&spq=0'}
, {'title': ' 2021 수능 접수, 가나다형 ', 'url': 'https://kin.naver.com/qna/detail.nhn?d1id=11&dirId=110408&docId=356364531&qb=6rCA64KY64uk&enc=utf8§ion=kin&rank=6&search_sort=0&spq=0'}
, {'title': ' 한글 2010 표 가나다 정렬 ', 'url': 'https://kin.naver.com/qna/detail.nhn?d1id=1&dirId=1020202&docId=345700824&qb=6rCA64KY64uk&enc=utf8§ion=kin&rank=7&search_sort=0&spq=0'}
, {'title': ' 한자 옥편 중에서 가나다 순서로 된 ', 'url': 'https://kin.naver.com/qna/detail.nhn?d1id=11&dirId=110802&docId=347619280&qb=6rCA64KY64uk&enc=utf8§ion=kin&rank=8&search_sort=0&spq=0'}
, {'title': ' 한글 가나다순 정렬을 사용할 때 ', 'url': 'https://kin.naver.com/qna/detail.nhn?d1id=1&dirId=1020202&docId=343387164&qb=6rCA64KY64uk&enc=utf8§ion=kin&rank=9&search_sort=0&spq=0'}
, {'title': " '가나다' 라는 등록상표를 사용하여 영업하다가... ", 'url': 'https://kin.naver.com/qna/detail.nhn?d1id=6&dirId=60205&docId=328428571&qb=6rCA64KY64uk&enc=utf8§ion=kin&rank=10&search_sort=0&spq=0'}]

찾은 결과값을 이용하여 한번더 for을 돌리면 안에 있는 답변이나 댓글들도 구해 올 수 있을거 같다.  url과 태그명만 바꿔어 주면 손쉽게 유튜브 같은 사이트의 댓글도 손쉽게 긁어 올 수 있을거 같다.

Comments