json으로는 데이터를 가져올 수 있는데 requests select로 찾을 수 없는경우는?
177
작성한 질문수 5
마지막 수업까지 잘 들었습니다. 이것을 어떻게 활용할지는 제 역량인것 같네요.
제목과 같이 json 형식으로 데이터는 가져올 수 있는데
select로 찾을려고 하면 찾을 수 없습니다.
iframe 구조인것 같은데 주소를 어떻게 찾아야 할 지 모르겠습니다.
제가 가져올려고 하는 데이터는 다음과 같습니다.
'다방'이라는 부동산 정보 사이트고요
이중 특정 '공인중개사' url로 들어갑니다.
https://www.dabangapp.com/room/6098cb714ea1405f11888d94
이중 room 뒤에 있는 6998~~~이 중개사 고유번호 입니다.
이 사이트에서 특정 방의 데이터를 가져올려고 하면 직접을 가져올 수 없고 개발자도구, 네트워크에서 request url을 통하여 json으로 받아올 수는 있습니다.
그런데 res.text 문구를 살펴보면 찾고자 하는 단어 들은 있는것 같은데
soup.select('div') 이런 명령어를 실행하면 빈 리스트만 나옵니다.
어떻게 하면 select로 찾을 수 있을까요?
참고로 첨부 아래는 제가 구현한 코드입니다.
agent = {
'좋은방다나와' : '5c7618ea1ffadb68b5da64e3',
'스마트' : '586f674024a93357d00dbcbd',
'조은' : '56a194f7ef02fd5dad87063f',
'런' : '581976532553ed2bee2d785e'
}
for item in agent.items():
id_list = []
for page in range(1,10):
url = 'https://www.dabangapp.com/api/3/room/list/agent?api_version=3.0.1&call_type=web&id={}&page={}&version=1'.format(item[1], page)
res = requests.get(url)
data_dict = res.json()
for data in data_dict['rooms']:
if len(data_dict['rooms']) == 0:
break
else:
each_id = data['id']
id_list.append(each_id)
time.sleep(1)
columns = ['유형', '전월세', '보증금', '월세', '면적', '관리비', '확정일', '층', '전체층', '방수', '욕실수', '난방', '빌트인', '주차수', '승강기', '애완동물', '발코니', '입주가능일', '타이틀', '메모', '주소']
total_room_inform_list = []
for id in id_list:
url1 = 'https://www.dabangapp.com/api/3/room/detail2?api_version=3.0.1&call_type=web&room_id={}&version=1'.format(id)
res1 = requests.get(url1)
room_inform = res1.json()['room']
room_inform_list = []
room_inform_list.append(room_inform['room_type_str'])
if room_inform['price_info'][0][2] == 0:
room_inform['price_info'][0][2] = '월세'
elif room_inform['price_info'][0][2] == 1:
room_inform['price_info'][0][2] = '전세'
room_inform_list.append(room_inform['price_info'][0][2])
room_inform_list.append(room_inform['price_info'][0][0])
room_inform_list.append(room_inform['price_info'][0][1])
room_inform_list.append(room_inform['room_size'])
room_inform_list.append(room_inform['maintenance_cost_str'])
room_inform_list.append(room_inform['confirm_date_str'])
room_inform_list.append(room_inform['room_floor_str'])
room_inform_list.append(room_inform['building_floor_str'])
room_inform_list.append(room_inform['beds_num'])
room_inform_list.append(room_inform['bath_num'])
room_inform_list.append(room_inform['heating'])
room_inform_list.append(room_inform['built_in_str'])
room_inform_list.append(room_inform['parking_num'])
room_inform_list.append(room_inform['elevator_str'])
room_inform_list.append(room_inform['animal_str'])
room_inform_list.append(room_inform['balcony_str'])
room_inform_list.append(room_inform['moving_date'])
room_inform_list.append(room_inform['title'])
room_inform_list.append(room_inform['memo'].replace('\n', ' ').replace(',', ' '))
room_inform_list.append(room_inform['full_jibun_address2_str'])
total_room_inform_list.append(room_inform_list)
time.sleep(1)
df = pd.DataFrame(total_room_inform_list, columns=columns)
df = df.set_index('주소')
filename = item[0] + '_' + time.strftime('%Y%m%d') + '.xlsx'
df.to_excel(filename)
time.sleep(1)
/www.dabangapp.com/api/3/room/detail2?api_version=3.0.1&call_type=web&room_id=6098cb714ea1405f11888d94&version=1
https://www.dabangapp.com/api/3/room/detail2?api_version=3.0.1&call_type=web&room_id=6098cb714ea1405f11888d94&version=1
https://www.dabangapp.com/api/3/room/detail2?api_version=3.0.1&call_type=web&room_id=6098cb714ea1405f11888d94&version=1
https://www.dabangapp.com/api/3/room/detail2?api_version=3.0.1&call_type=web&room_id=6098cb714ea1405f11888d94&version=1
답변 1
0
"soup을 만들 때, `features` option을 다르게 줘보기" 방식을 시도해볼만 할 것 같은데, 만약 이것도 안된다면, 왠지 complete html form이 아니라서 그런 것일 수도 있을 것 같네요. 이런 경우 regular expression 등을 이용해서 추출할 수도 잇습니다.
15.1 네이버 부동산 사이트 개발자도구 실행시 현상 문의
0
897
1
requirments 설치 시 오류
0
96
1
6.1 미국주식 데이터 크롤링이 막혔네요.
0
227
2
태그를 못찾는 오류 질문드립니다.
0
144
2
6.1 미국 주식 데이터 크롤링을 막아둔 거 같아요.
0
284
2
requirements.txt 다운로드가 안끝나요
0
149
2
주신 파일로 다운로드를 하던 중에 끝에 이런 오류가 뜨는데 어떡해야하나요?
0
150
1
혹시 애플 M시리즈 사용하시는 분 중에 오류
0
152
0
전일비 상승,하락때문에 int화를 못하고 있는데
0
127
1
일별 시세 데이터 상승/하락 \t\n해결법
0
159
1
pd.concat(df, ignore_index=True) InvalidIndexError 해결 방법 문의
0
469
2
pip install -r requirements.txt 문제
0
366
3
부동산 KB 시세 크롤링 문의
0
828
1
7.1 주식 일별 시세 데이터(Yahoo finance)
1
379
1
네이버 부동산 매물 크롤링 오류
0
645
1
네이버 부동산 크롤링 문의드립니다.
0
1059
1
버전 관련 질문
0
352
1
5.2강 주식 일별 시세 데이터 관련 질문이 있습니다
0
279
1
7.1 야후 파이낸스 크롤링 request 오류
0
741
1
anaconda
0
358
1
야후파이낸스 크롤링 오류
0
824
1
셀레니움 변경점
2
791
1
request.get() 하면 SSLCertVerificationError 에러가 납니다.
0
520
1
이론 수업 자료 공유 해주실 수 있나요?
0
362
0





