Computer >> कंप्यूटर >  >> प्रोग्रामिंग >> Python

पायथन का उपयोग कर वेब से फाइल डाउनलोड करना?

पायथन वेब से फाइल डाउनलोड करने के लिए विभिन्न मॉड्यूल जैसे urllib, अनुरोध आदि प्रदान करता है। मैं यूआरएल से फाइलों को कुशलतापूर्वक डाउनलोड करने के लिए पाइथन की अनुरोध लाइब्रेरी का उपयोग करने जा रहा हूं।

आइए अनुरोध लाइब्रेरी का उपयोग करके URL का उपयोग करके फ़ाइलें डाउनलोड करने की चरण दर चरण प्रक्रिया पर एक नज़र डालें-

<एच3>1. मॉड्यूल आयात करें
import requests
<एच3>2. लिंक या यूआरएल प्राप्त करें
url = 'https://www.facebook.com/favicon.ico'
r = requests.get(url, allow_redirects=True)
<एच3>3. सामग्री को नाम से सहेजें।
open('facebook.ico', 'wb').write(r.content)

फ़ाइल को facebook.ico के रूप में सहेजें।

उदाहरण

import requests


url = 'https://www.facebook.com/favicon.ico'
r = requests.get(url, allow_redirects=True)

open('facebook.ico', 'wb').write(r.content)

परिणाम

पायथन का उपयोग कर वेब से फाइल डाउनलोड करना?

हम देख सकते हैं कि फ़ाइल हमारी वर्तमान कार्यशील निर्देशिका में डाउनलोड (आइकन) है।

लेकिन हमें वेब से विभिन्न प्रकार की फाइलें जैसे इमेज, टेक्स्ट, वीडियो आदि डाउनलोड करने की आवश्यकता हो सकती है। तो आइए सबसे पहले पता करें कि यूआरएल किस प्रकार का डेटा लिंक कर रहा है-

>>> r = requests.get(url, allow_redirects=True)
>>> print(r.headers.get('content-type'))
image/png

हालांकि, एक बेहतर तरीका है, जिसमें वास्तव में इसे डाउनलोड करने से पहले यूआरएल के शीर्षलेख प्राप्त करना शामिल है। इससे हम उन फ़ाइलों को डाउनलोड करना छोड़ सकते हैं जिन्हें डाउनलोड नहीं किया जाना था।

>>> print(is_downloadable('https://www.youtube.com/watch?v=xCglV_dqFGI'))
False
>>> print(is_downloadable('https://www.facebook.com/favicon.ico'))
True

फ़ाइल आकार द्वारा डाउनलोड को प्रतिबंधित करने के लिए, हम सामग्री-लंबाई शीर्षलेख से फ़ाइलज़ी प्राप्त कर सकते हैं और फिर अपनी आवश्यकता के अनुसार कर सकते हैं।

contentLength = header.get('content-length', None)
if contentLength and contentLength > 2e8: # 200 mb approx
return False

URL से फ़ाइल नाम प्राप्त करें

फ़ाइल नाम प्राप्त करने के लिए, हम url को पार्स कर सकते हैं। नीचे एक नमूना दिनचर्या है जो बैकस्लैश (/) के बाद अंतिम स्ट्रिंग प्राप्त करती है।

url= "https://www.computersolution.tech/wp-content/uploads/2016/05/tutorialspoint-logo.png"
if url.find('/'):
print(url.rsplit('/', 1)[1]

ऊपर url का फ़ाइल नाम देगा। हालांकि, ऐसे कई मामले हैं जहां फ़ाइल नाम की जानकारी यूआरएल में मौजूद नहीं है, उदाहरण के लिए - https://url.com/download। ऐसी स्थिति में, हमें सामग्री-विस्थापन शीर्षलेख प्राप्त करने की आवश्यकता होती है, जिसमें फ़ाइल नाम की जानकारी होती है।

import requests
import re

def getFilename_fromCd(cd):
"""
Get filename from content-disposition
"""
if not cd:
return None
fname = re.findall('filename=(.+)', cd)
if len(fname) == 0:
return None
return fname[0]


url = 'https://google.com/favicon.ico'
r = requests.get(url, allow_redirects=True)
filename = getFilename_fromCd(r.headers.get('content-disposition'))
open(filename, 'wb').write(r.content)

उपरोक्त प्रोग्राम के साथ उपरोक्त यूआरएल-पार्सिंग कोड आपको ज्यादातर समय सामग्री-विस्थापन शीर्षलेख से फ़ाइल नाम देगा।


  1. वेब स्क्रैपिंग अजगर और स्क्रैपी का उपयोग कर?

    क्रॉलर विकसित करने के लिए सबसे अच्छे ढांचे में से एक स्क्रैपी है। स्क्रैपी एक लोकप्रिय वेब स्क्रैपिंग और क्रॉलिंग फ्रेमवर्क है जो स्क्रैपिंग वेबसाइटों को आसान बनाने के लिए उच्च-स्तरीय कार्यक्षमता का उपयोग करता है। इंस्टॉलेशन खिड़कियों में स्क्रैपी स्थापित करना आसान है:हम या तो पाइप या कोंडा का उपय

  1. पायथन में एलएक्सएमएल का उपयोग कर वेब स्क्रैपिंग कार्यान्वित करना?

    वेब स्क्रैपिंग न केवल डेटा विज्ञान के प्रति उत्साही बल्कि छात्रों या एक शिक्षार्थी को उत्साहित करता है, जो वेबसाइटों में गहराई से खुदाई करना चाहता है। पायथन कई वेबस्क्रैपिंग लाइब्रेरी प्रदान करता है, जिनमें शामिल हैं, स्क्रैपी उरलिब सुंदर सूप सेलेनियम पायथन अनुरोध एलएक्सएमएल हम

  1. पायथन का उपयोग करके कई फाइलों का नाम बदलें

    नाम बदलें () विधि का उपयोग Python3 में किसी फ़ाइल या निर्देशिका का नाम बदलने के लिए किया जाता है। नाम बदलें () विधि ओएस मॉड्यूल का एक हिस्सा है। os.rename के लिए सिंटैक्स () os.rename(src, dst) पहला तर्क src है जो नाम बदलने के लिए फ़ाइल का स्रोत पता है और दूसरा तर्क dstजो नए नाम के साथ गंतव्य है।