오늘의학습
2023.06.20
이경찬 :)
2023. 6. 20. 17:12
오늘은 api와 웹 스크래핑을 배웠습니다.
1. api
# url 불러오기
url = "http://data4library.kr/api/loanItemSrch?format=json&startDt=2021-04-01&endDt=2021-04-30&age=20authKey=2df1fe5530051e3b7d359ddaf2346b1af20edb2326fad85e3b7809cafcd84135"
r = requests.get(url)
data = r.json()
# response
data['response']
url불러오고 response를 data에 저장.
# response - docs - doc을 books에 넣어준다
books = []
for d in data['response']['docs']:
books.append(d['doc'])
books에 필요한 정보 append
# books를 dataFrame
books_df = pd.DataFrame(books)
books_df
books를 dataFrame으로 만들어준다
# json형식으로 저장
books_df.to_json('20s_best_book.json', force_ascii=False)
json형식으로 저장.
2. 웹 스크래핑 사용.
def get_page_cnt(isbn):
url = "http://www.yes24.com/Product/Search?domain=BOOK&query={}"
r = requests.get(url.format(isbn))
soup = BeautifulSoup(r.text, 'html.parser')
prd_info = soup.find('a',attrs={'class': 'gd_name'})
if prd_info == None:
return ''
url = "http://www.yes24.com"+prd_info['href']
r = requests.get(url)
soup = BeautifulSoup(r.text, 'html.parser')
prd_detail = soup.find('div',attrs={'id': 'infoset_specific'})
prd_tr_list = prd_detail.find_all('tr')
for tr in prd_tr_list:
if tr.find('th').get_text() == '쪽수, 무게, 크기':
return tr.find('td').get_text().split()[0]
return ''
웹 스크래핑 함수