
* 겪고 있는 문제 상황을 최대한 자세하게 작성해주세요.
* 문제 해결을 위해 어떤 시도를 해보았는지 구체적으로 함께 알려주세요.
설명을 잘못드린점 죄송합니다.
지금상황이 김포시쪽에있는 일반음식점에 대한 정보를 모두 얻어와야하는 상황이라
'https://www.gimpo.go.kr/portal/selectBbsNttList.do?key=1283&id=&&bbsNo=573&searchCtgry=&pageUnit=10&searchCnd=CTGRY&searchKrwd=%EC%9D%8C%EC%8B%9D&integrDeptCode=&pageIndex='
해당페이지의 index가 1부터 493페이지 모두 크롤링해야하는 상황입니다. ㅜ 관련 db를 찾아보려고 김포시청에 여러번 연결해보았으나
담당직원이 부재중이라는 말밖에 없어서 ㅜㅜ..
import requests
from bs4 import BeautifulSoup
from pymongo import MongoClient
client = MongoClient('mongodb+srv://test:sparta@cluster0.clu05af.mongodb.net/Cluster0?retryWrites=true&w=majority')
db = client.dbsparta
headers = {
'User-Agent': 'Mozilla/5.0 (Windows NT 10.0; Win64; x64)AppleWebKit/537.36 (KHTML, like Gecko) Chrome/73.0.3683.86 Safari/537.36'}
for i in range(1,3) :
data = requests.get(
'https://www.gimpo.go.kr/portal/selectBbsNttList.do?key=1283&id=&&bbsNo=573&searchCtgry=&pageUnit=10&searchCnd=CTGRY&searchKrwd=%EC%9D%8C%EC%8B%9D&integrDeptCode=&pageIndex='
+str(i),
headers=headers)
soup = BeautifulSoup(data.text, 'html.parser')
crawls = soup.select('tbody.small')
for crawl in crawls :
if crawl is not None :
temp_rank = crawl.select_one('tbody.small .text_center').text
temp_title = crawl.select_one('tbody.small a').text
temp_address =crawl.select_one('tbody.small p').text
print(temp_rank,temp_title,temp_address)
해서
for i in range(1,3) :
data = requests.get(
'https://www.gimpo.go.kr/portal/selectBbsNttList.do?key=1283&id=&&bbsNo=573&searchCtgry=&pageUnit=10&searchCnd=CTGRY&searchKrwd=%EC%9D%8C%EC%8B%9D&integrDeptCode=&pageIndex='
+str(i),
headers=headers)
soup = BeautifulSoup(data.text, 'html.parser')
crawls = soup.select('tbody.small')
이부분에서 for문을 돌려 1페이지 서부터 493페이지 까지 for문의 range 영역의 3의 숫자를 493 으로 바꾸어
crawls 객체를 1번 부터 493페이지까지 크롤링 한 결과 493페이지 까지 모두 출력이 되었으나
for crawl in crawls :
if crawl is not None :
temp_rank = crawl.select_one('tbody.small .text_center').text
temp_title = crawl.select_one('tbody.small a').text
temp_address =crawl.select_one('tbody.small p').text
print(temp_rank,temp_title,temp_address)
이부분에서 1페이지에있는 1~30까지를 정보를 하단 프린트 문을 통해 크롤링 해와야하는데 출력된값은

30개가 아닌 2개가 다입니다.
왜 여기서 결과값이 30개가 아닌 2개만 찍히는지 잘 모르겠습니다. ㅜㅜ..
