python簡單爬蟲抓取視頻demo-完善


from parse import parse_url
import json


def get_url(p,n=1):
# p 頁數 n 電視劇集數
url = "http://api.cntv.cn/videoset/getVideoListByAlbumId?id=VIDA1404730290373811&mode=0&p={}&n={}&sort=2&serviceId=tvcctv&cb=".format(
p,n)
return url

def get_guid(url):
json_response = parse_url(url)
json_loads = json.loads(json_response)
guid = json_loads['itemList'][0]['guid']
return guid

def get_video(guid):
v_url = "http://vdn.apps.cntv.cn/api/getIpadVideoInfo.do?pid={}&vn=2049".format(guid)
v_response = parse_url(v_url)
# v_loads = json.loads(v_response)
return v_response
def get_json(str):
# 返回數據處理為類json字符串
str_start = len("var html5VideoData = '")
str_end = len("';getHtml5VideoData(html5VideoData);")
video_str = str[str_start:-str_end]
v_str_all = json.loads(video_str)
v_str = v_str_all['video']
# 第一種分辨率視頻
v_low_urllist=''
v_low2_urllist = ''
v_low3_urllist = ''
v_low4_urllist = ''
v_low=v_str['lowChapters']
v_low2 = v_str['chapters']
v_low3 = v_str['chapters2']
v_low4 = v_str['chapters4']
# 所有分辨率的視頻信息 列表轉json 存入文檔
v_all=v_low+v_low2+v_low3+v_low4
v_all=json.dumps(v_all)
# 每種分辨率的視頻 只要URL
for v in v_low:
v_low_urllist += v['url']+"\n"
for v2 in v_low2:
v_low2_urllist += v2['url'] + "\n"
for v3 in v_low3:
v_low3_urllist += v3['url'] + "\n"
for v4 in v_low4:
v_low4_urllist += v4['url'] + "\n"

return v_all,v_low_urllist,v_low2_urllist,v_low3_urllist,v_low4_urllist


def run():
# 傳遞第一集信息
temp_url = get_url(1)
# 獲取響應guid
temp_guid = get_guid(temp_url)
# 獲取視頻詳情請求
temp_video = get_video(temp_guid)
# 處理類json結果
v_all,temp_json1,temp_json2,temp_json3,temp_json4 = get_json(temp_video)
# print("第一種分辨率視頻信息",temp_json1)
# print("第二種分辨率視頻信息",temp_json2)
# print("第三種分辨率視頻信息",temp_json3)
# print("第四種分辨率視頻信息",temp_json4)
print(v_all)
# 保存數據到txt
f = open("video_info.txt", "w", encoding="utf-8")
f.write(v_all)
f.close()


免責聲明!

本站轉載的文章為個人學習借鑒使用,本站對版權不負任何法律責任。如果侵犯了您的隱私權益,請聯系本站郵箱yoyou2525@163.com刪除。



 
粵ICP備18138465號   © 2018-2025 CODEPRJ.COM