วีธีการดาวน์โหลดวีดีโอด้วยลิ้ง url โดยการใช้ requests

แชร์ความรู้ภาษา Python ไพทอน การเขียนโปรแกรมภาษาไพทอน

Moderators: mindphp, ผู้ดูแลกระดาน

User avatar
jirawoot
PHP VIP Members
PHP VIP Members
Posts: 1098
Joined: 17/06/2019 10:30 am

วีธีการดาวน์โหลดวีดีโอด้วยลิ้ง url โดยการใช้ requests

Post by jirawoot » 23/08/2019 5:46 pm

ภาษา Python เป็นภาษาหนึ่งที่สามารถทำได้เกือบทุกอย่าง สำหรับคนที่กำลังจะหาวิธีในการใช้หรือนำลิ้งวีดีโอมาดาวน์โหลด สามารถทำได้ด้วย library ของภาษา python ที่มีชื่อว่า requests เป็นตัวที่ใช้สำหรับการร้องขอข้อมูลต่างๆ จาก Server จากนั้นทางฝ่าย server ก็ทำการส่งข้อมูลที่ทางฝ่าย client ต้องการตามที่ขอมาในขั้นตอนการดาวน์โหลดวีดีโอนั้นก็ใช้หลักการเดียวกัน ในส่วนของโค้ดคำสั่งการทำงานมีดังนี้
ติดตั้ง requests

Code: Select all

pip install requests
ทำการ import requests

Code: Select all

import requests 
ประกาศตัวแปรมารับค่า request ของ ลิ้ง url

Code: Select all

url='http://127.0.0.1:5000/video/content.mp4'
req = requests.get(url)
จากนั้นนำลิ้งมาตัด string

Code: Select all

vdo_name = url.split('/')[-1]
ทำการเก็บค่าของ header นั้นเพื่อนำมาเช็ค type

Code: Select all

head_req=req.headers
ใช้ for วนค่า dictionary ของ header

Code: Select all

for k, v in head_req.items():
จากนั้นใช้ if มาตรวจสอบว่ามี Content-Type

Code: Select all

if k == 'Content-Type':
จากนั้นจะได้ค่าของ Content-Type แล้วมาตรวจสอบว่าเป็นไฟล์วีดีโอ

Code: Select all

v = v.split('/')
if v[0] == 'video':
จากนั้นทำการเขียนไฟล์วีดีโอ

Code: Select all

 path_donw_vdo =vdo_name
 with open(path_donw_vdo, 'wb') as f:
 f.write(req.content)
print 'Download '+vdo_name+' success'
ผลที่ได้
Image

จากนั้นสังเกตได้ว่ามีไฟล์วีดีโอเพิ่มเข้ามา
Image

ไฟล์ python รวม

Code: Select all

import requests

url='http://127.0.0.1:5000/video/content.mp4'
req = requests.get(url)
vdo_name = url.split('/')[-1]
head_req=req.headers
for k, v in head_req.items():
    if k == 'Content-Type':
        # print k, v
        v = v.split('/')
        if v[0] == 'video':
            path_donw_vdo =vdo_name
            with open(path_donw_vdo, 'wb') as f:
                f.write(req.content)
                print 'Download '+vdo_name+' success'


อ้างอิง
https://stackoverflow.com/questions/16694907/download-large-file-in-python-with-requests
https://www.codementor.io/aviaryan/downloading-files-from-urls-in-python-77q3bs0un
https://www.geeksforgeeks.org/downloading-files-web-using-python/

Return to “Python Knowledge”

Who is online

Users browsing this forum: Bing [Bot] and 39 guests