goodthings4me.tistory.com
■ 파이썬(Python) 크롤링 연습 - 팟빵 목록 추출하기
http://www.podbbang.com/
팟빵 채널(ex. 일빵빵 입에 달고 사는 기초영어) 선택 후, 우측 목록(파일 리스트) 페이지를 클릭하면
Ajax처럼 작동하는데, 개발자도구(F12)로 Network 탭에서 해당 URL을 확인해보면 Json 형태를 확인할 수 있다.
Request URL: http://www.podbbang.com/_m_api/podcasts/7193/episodes
?offset=1&sort=pubdate:desc&episode_id=0&limit=8&with=summary&cache=0
# json 파일임
최소 파라미터 확인 결과,
http://www.podbbang.com/_m_api/podcasts/7193/episodes?offset=0
import requests
import json
import os
import re
from itertools import count
cnt = 0
stop = False
for offset in count(0):
ch_url = 'http://www.podbbang.com/_m_api/podcasts/7193/episodes'
params = {
'offset': offset,
}
html = requests.get(ch_url, params = params)
print(html)
result_dict = json.loads(html.text) # json --> dict
# 총 개수를 얻기 위해 dict의 관련 요소 추출
tot_count = result_dict['summary']['total_count']
print(tot_count) # 459
for r in result_dict['data']:
cnt += 1
print(cnt)
print(r['id'])
print(r['title'])
print(r['enclosure']['url']) # .mp3 또는 .mp4
print(r['enclosure']['length']) # 용량
print(r['duration']) # 파일 실행 시간
print(r['published_at'])
# 정규표현식 re.sub('[]', '', 대상)를 통해 목록명의 특수문자 제거 후 파일명으로 사용
title = re.sub('[*\|<>?:"/]', '', r['title'])
# 파일 다운로드 위한 requests, 파일이름 짓기
mp3_bin = requests.get(r['enclosure']['url']).content
base_filename = os.path.basename(r['enclosure']['url'])
filename = '{}_{}_{}'.format(r['id'], title, base_filename)
print(filename)
# with open(filename, 'wb') as f:
# f.write(mp3_bin)
print()
if cnt >= 3: # cnt >= tot_count: 할 경우 전체 파일 대상이 됨
stop = True
break
if stop:
break
[실행 결과]
<Response [200]>
459
1
22534026
일빵빵
https://file.ssenhosting.com/data1/tomato2u/letsilbangbang.mp4
6650555
00:00:39
2018-02-14 20:51:05
22534026_일빵빵_letsilbangbang.mp4
2
22274594
(기초영어특별판완강TEST) 나의 대답 실력은?
https://file.ssenhosting.com/data1/tomato2u/specialtest.mp3
31355089
00:21:46
2017-05-15 11:22:03
22274594_(기초영어특별판완강TEST) 나의 대답 실력은_specialtest.mp3
3
22258606
(특별판 제60강) NATIVE 원음 591-600
https://file.ssenhosting.com/data1/tomato2u/native60.mp3
6632385
00:04:36
2017-04-23 15:51:59
22258606_(특별판 제60강) NATIVE 원음 591-600_native60.mp3
[참고] askcompany.kr - 크롤링 차근차근 시작하기
'코딩 연습 > 코딩배우기' 카테고리의 다른 글
파이썬 크롤링(Crawling) 연습 - BeautifulSoup 객체를 모듈로 만들어서 사용해보기 (0) | 2020.10.27 |
---|---|
파이썬 웹 크롤링(Web Crawling) 알아보기 #9 (0) | 2020.10.26 |
파이썬 웹 크롤링(Web Crawling) 알아보기 #7 (0) | 2020.10.25 |
파이썬 웹 크롤링(Web Crawling) 알아보기 #6 (0) | 2020.10.25 |
파이썬 크롤링(Crawling) 연습 - BeautifulSoup 관련 함수 (0) | 2020.10.25 |
댓글