मेरे पास एक ऑनलाइन फ़ोल्डर है जहां मेरे पास वीडियो फ़ाइलें हैं इसलिए मुझे वहां से अपने स्थानीय सिस्टम में वीडियो डाउनलोड करने की आवश्यकता है ताकि ऐसा करने के लिए मैं Bs4 , urllib मॉड्यूल का उपयोग कर रहा हूं, डाउनलोड की गई फ़ाइलें चलाने योग्य नहीं हैं

कृपया मेरे कोड पर एक नज़र डालें।

from bs4 import BeautifulSoup
import urllib2
import random
import urllib
from urllib2 import urlopen
         
def download(url):
    response = urllib.urlopen("http://ssdolutions/addadsfasdfulsdfaatadfae")
    doc  = response.read()
    soup = BeautifulSoup(doc)
    for link in soup.find_all('a'):
        x = (link.get('href'))
        name = random.randrange(1,10)
        full_name = str(name) + ".mp4"
        urllib.urlretrieve(url, full_name)
download("http://ssdolutions/addadsfasdfulsdfaatadfae")
0
Avii 31 अक्टूबर 2016, 08:26
डाउनलोड की गई फ़ाइल को टेक्स्ट एडिटर के साथ खोलने का प्रयास करें और जांचें कि अंदर क्या है। मुझे संदेह है कि आपकी फ़ाइलें खाली हैं या अंदर HTML है।
 – 
Alex Paramonov
31 अक्टूबर 2016, 08:38
हां मैंने इसे किया और पाया कि फ़ाइल mp4 प्रारूप में डाउनलोड हो रही थी लेकिन जब मैंने टेक्स्ट एडिटर में खोला तो यह एक HTML पृष्ठ था।
 – 
Avii
31 अक्टूबर 2016, 08:52
इसका मतलब है कि आप कुछ गलत कर रहे हैं। उस डाउनलोड की गई फ़ाइल को ब्राउज़र में खोलने का प्रयास करें और देखें कि वहां क्या लिखा है - हो सकता है कि "पृष्ठ नहीं मिला" या "आपके पास इस फ़ाइल को देखने की अनुमति नहीं है" जैसा कोई संदेश हो।
 – 
Alex Paramonov
31 अक्टूबर 2016, 10:01
कोड गलत है मैं href पुनर्प्राप्त कर रहा हूं और उन्हें mp4 फाइलों के रूप में संग्रहीत कर रहा हूं। मुझे एक समाधान की आवश्यकता है जहां मैं एक समय में यूआरएल में मौजूद सभी एमपी 4 फाइलों को डाउनलोड कर सकता हूं और स्थानीय निर्देशिका में स्टोर कर सकता हूं।
 – 
Avii
31 अक्टूबर 2016, 10:10

1 उत्तर

सबसे बढ़िया उत्तर

प्रत्येक लिंक URL (x वेरिएबल में संग्रहीत) को urlretrieve कॉल पर पास करें:

from bs4 import BeautifulSoup
import urllib2
import random
import urllib
import os
from urllib2 import urlopen

def download(url):
    response = urllib.urlopen("http://ssdolutions/addadsfasdfulsdfaatadfae")
    doc  = response.read()
    soup = BeautifulSoup(doc)
    for link in soup.find_all('a'):
        url = (link.get('href'))
        # Extract filename from link URL
        filename = os.path.basename(url)
        file_data = os.path.splitext(filename)
        if len(file_data) > 1:
           file_ext = file_data[1]
           # this will allow you to download links with *.mp4 extension only
           if file_ext == ".mp4":
              urllib.urlretrieve(url, filename)

download("http://ssdolutions/addadsfasdfulsdfaatadfae")
0
Alex Paramonov 31 अक्टूबर 2016, 11:08
मुझे फ़ाइल नाम भी जोड़ना है
 – 
Avii
31 अक्टूबर 2016, 11:01
+ छोटा बोनस जो केवल mp4 फाइलें डाउनलोड करेगा, कोई भी लिंक एक पेज नहीं बनाता है।
 – 
Alex Paramonov
31 अक्टूबर 2016, 11:09