인프런 커뮤니티 질문&답변

chl9338님의 프로필 이미지

작성한 질문수

파이썬입문과 크롤링기초 부트캠프 [파이썬, 웹, 데이터 이해 기본까지] (업데이트)

패턴으로 실습하며 익히기: HTML/CSS 이해를 바탕으로 크롤링하기

내용

20.08.21 03:25 작성

·

192

0

만약에 크롤링 하고싶은 단어가있는 페이지가 있는데 

그 단어가 들어있는 페이지도 있고 안들어있는 페이지도 있어서  밑에 번호로 1, 2 , 3 , 4 등등으로 페이지가 

이렇게 넘어가게 되는 경우는 어떻게 할수있을까요?

따로 한번에 크롤링 하는 방법이 있을까요 ? 아니면

하나하나 크롤링해서 정보를 모으는 건가요?

답변 2

0

chl9338님의 프로필 이미지
chl9338
질문자

2020. 08. 21. 15:47

음.. 그 

for index in range(10):

   requests.get('링크~~~='+ str(index))

이 부분을 어이다가 넣으면 되는건가요 ? 

제가 http://www.inven.co.kr/board/maple/2298?category=%EC%97%94%EC%A0%A4%EB%A6%AD%EB%B2%84%EC%8A%A4%ED%84%B0&sort=PID&p=1

예시로

이 사이트에서 검색에 '시커'와 관련된 제목들만 모아보고싶습니다. (그냥 검색부분을 이용해도 되긴하지만  크롤링을 이용해서 한번 도전해 보고싶었습니다)

하지만 밑에 페이지가 1,2,3 등등에도 '시커'와 관련된 제목들이 있어서 그부분을 가지고 싶은데

import requests

from bs4 import BeautifulSoup

res = requests.get('https://davelee-fun.github.io/blog/crawl_test')

soup = BeautifulSoup(res.content,'html.parser')

titles = soup.find_all('li','course')

for title in titles:

    print(title.get_text())

기본 크롤링 소스에서 페이지를 가지고 오는 쪽이니까 res 쪽에 이용해서 저부분을 넣으면 된다는건가요?

만약에 넣으면 되는게 맞다면 어떻게 활용해야할까요 ? 

for index in range(10):

   requests.get('링크~~~='+ str(index))

이부분을 리스트형태로 나온것을 변수에 저장해서 그 변수를 변수.content, 'html.parser'를 해서 soup에 넣고 하면 되는건가요 ? 좀더 수업을 듣고난 후에 해보고 이해못하면 그때 다시 여쭈어 볼까요?

0

잔재미코딩 DaveLee님의 프로필 이미지

2020. 08. 21. 11:34

안녕하세요.

해당 부분은 페이지 번호를 클릭할 때마다 링크의 일부분이 1, 2 이런식으로 숫자가 변하는 예들을 보실 수 있어요.

이 관계를 확인한 다음에 다음과 같이 (예를 들어 10페이지 크롤링을 한다면)

for index in range(10):

   requests.get('링크~~~='+ str(index))

   원하는 태그 가져오기

와 같이 반복문으로 해당 링크의 숫자가 변하는 곳만 바꿔서 반복적으로 크롤링 하실 수 있습니다.

감사합니다.

chl9338님의 프로필 이미지

작성한 질문수

질문하기