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

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

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

ภาพประจำตัวสมาชิก
jirawoot
PHP VIP Members
PHP VIP Members
โพสต์: 3129
ลงทะเบียนเมื่อ: 17/06/2019 10:30 am

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

โพสต์ที่ยังไม่ได้อ่าน โดย jirawoot »

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

โค้ด: เลือกทั้งหมด

pip install requests
ทำการ import requests

โค้ด: เลือกทั้งหมด

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

โค้ด: เลือกทั้งหมด

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

โค้ด: เลือกทั้งหมด

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

โค้ด: เลือกทั้งหมด

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

โค้ด: เลือกทั้งหมด

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

โค้ด: เลือกทั้งหมด

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

โค้ด: เลือกทั้งหมด

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'
ผลที่ได้
รูปภาพ

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

ไฟล์ python รวม

โค้ด: เลือกทั้งหมด

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/
  • Similar Topics
    ตอบกลับ
    แสดง
    โพสต์ล่าสุด

ผู้ใช้งานขณะนี้

สมาชิกกำลังดูบอร์ดนี้: ไม่มีสมาชิกใหม่ และบุคลทั่วไป 44