데이터 수집 [ Web crawling ]
[Requests & BeautifulSoup] 카카오 쇼핑하기 핫딜 상품 스크래핑
on_doing
2020. 9. 7. 21:57
728x90
url: https://shoppinghow.kakao.com/siso/p/hotdeal/list/
대한민국 최저가 가격비교 쇼핑! 쇼핑하우 by kakaocommerce
쇼핑하우 by kakaocommerce는 대한민국 온라인 쇼핑몰들의 상품 정보를 모두 모아 한번에 가격비교가 가능한, 최저가 가격비교 서비스 입니다.
shoppinghow.kakao.com
* 핫딜은 매 시간 정보가 변경되는 동적 페이지임을 고려해야한다.
따라서 네트워크 탭에서 검색해서 찾고싶은 키워드를 검색하여 해당 network 정보를 따로 알아야한다.
import requests
from bs4 import BeautifulSoup
url=' https://shoppinghow.kakao.com/siso/p/api/hotdeal/list?contentseq=&_=1598955281618'
headers={
'Accept': 'application/json, text/javascript, */*; q=0.01',
'Accept-Encoding': 'gzip, deflate, br',
'Accept-Language': 'ko-KR,ko;q=0.9,en-US;q=0.8,en;q=0.7',
'Connection': 'keep-alive',
'Cookie': 'webid=1db1f8d2a02b4f60b37e5c103ad78738; kuid=492300417166737409; _TI_NID=iok9mjEFfnWoNqMjDA5hhQAYnt9WyITLaqF/O+bKepgHMV9jrZRa01Qze1v5GW8K6MbrA2gvk8zX55M1xMGmrw==; _kadu=2FU3BC0HfngA0qwV_1589781930846; webid_ts=1586478229980; TIARA=M.CEFlEPzYaqoAGysqDSx4V5ExEqsuVIe1XkZMRcg8rOJ9e13POipsHtEwFSChud7i-xkuEDS3Scl4YNvAVWW_t.bKwgfDdA',
'Host': 'shoppinghow.kakao.com',
'Referer': 'https://shoppinghow.kakao.com/siso/p/hotdeal/list/',
'Sec-Fetch-Dest': 'empty',
'Sec-Fetch-Mode': 'cors',
'Sec-Fetch-Site': 'same-origin',
'User-Agent': 'Mozilla/5.0 (Windows NT 10.0; Win64; x64) AppleWebKit/537.36 (KHTML, like Gecko) Chrome/84.0.4147.135 Safari/537.36',
'X-Requested-With': 'XMLHttpRequest'
}
res=requests.get(url,headers=headers)
res.json()
가끔 똑같이 했는데 크롤링이 안되거나, 빈 리스트가 출력되는 경우가 있다
그럴땐 header 정보를 가져와서 dic 형태로 변환하여 전달해주어야 합니다.
*때에 따라서 필요한 header 정보가 다르므로,, 저는 그냥 다 가져온답니다
그럼 이제 마지막으로 json 모듈을 사용하여 문자열 형태를 dic 형태로 바꿔주고, 슬라이싱을 통해 원하는 데이터를 출력해줍니다.
result=res.json()
print(result['todayList'][0]['title'])
print(result['todayList'][0]['minPrice'])
728x90