2017-02-08 17 views
12

मेरे पास एक पायथन स्क्रिप्ट है जो src<video> तत्व की एक HTML पृष्ठ में विशेषता को स्क्रैप करती है। this page के वीडियो पर ब्राउज़र इंस्पेक्टर के साथ, मैं वीडियो तत्व को देख सकता हूं जिसे मुझे स्क्रैप करने की आवश्यकता है, लेकिन पेज स्रोत को सीधे देखकर केवल एम्बर एप्लिकेशन जावास्क्रिप्ट फाइलें दिखाती हैं।स्क्रैप आंतरिक फ्रेम एचटीएमएल

<video> तत्व रखने वाले "आंतरिक फ्रेम" मार्कअप तक पहुंचने के लिए मुझे क्या करने की आवश्यकता है ताकि मैं src विशेषता को स्क्रैप कर सकूं?

संपादित तो यह नहीं इतनी व्यापक

उत्तर

7

देख पूर्ण ब्राउज़र/सेलेनियम मार्ग जाने के लिए कोई ज़रूरत नहीं: आप सेलेनियम की कोशिश कर सकते हैं। बस थोड़ा और जांच करें और आप देखेंगे कि यह कैसे काम करता है:

बेल यूआरएल https://vine.co/v/i3pQ70vK3iv के लिए, आप जेसन फ़ाइल चाहते हैं जो वीडियो का वर्णन करता है।

इतना आसान यूआरएल https://archive.vine.co/posts/i3pQ70vK3iv.json स्क्रैप करें। यही कारण है कि जैसे फ़ाइल वापस आ जाएगी:

{ 
    "username": "Bleacher Report", 
    "userIdStr": "906307026416705536", 
    "postId": 1352573572862066700, 
    "verified": 1, 
    "description": "", 
    "created": "2016-06-09T06:14:43.000000", 
    "permalinkUrl": "https://vine.co/v/i3pQ70vK3iv", 
    "userId": 906307026416705500, 
    "profileBackground": "0x333333", 
    "vanityUrls": [ 
    "BleacherReport" 
    ], 
    "entities": [], 
    "postIdStr": "1352573572862066688", 
    "comments": 293, 
    "reposts": 2384, 
    "videoLowURL": "http://mtc.cdn.vine.co/r/videos_r2/DC69CF91B61352573549554077696_558739dd749.17.0.4126553130190094381.mp4?versionId=oVIxbcFKL5aaqsbMx_q.7wt4zEnhgQ0w", 
    "loops": 19182516, 
    "videoUrl": "http://mtc.cdn.vine.co/r/videos/DC69CF91B61352573549554077696_558739dd749.17.0.4126553130190094381.mp4?versionId=av0W8OaLWSzghq.9__iKdSU4y75FDNg.", 
    "videoDashUrl": "http://mtc.cdn.vine.co/r/videos_dashhd/DC69CF91B61352573549554077696_558739dd749.17.0.4126553130190094381.mp4?versionId=98zVYTYAx16DJka7Oa1yQu20utGrQch9", 
    "thumbnailUrl": "http://v.cdn.vine.co/r/thumbs/DC69CF91B61352573549554077696_558739dd749.17.0.4126553130190094381.mp4.jpg?versionId=7LmJNEI3C6bsHkF3t9jqu5k1O2xEHo9l", 
    "explicitContent": 0, 
    "likes": 6593 
} 

आप वापस आ json में videoUrl विशेषता के रूप में वीडियो के लिए URL मिल जाएगा।

2

जे एस क्लाइंट पर चलाया जाता है पेज के वीडियो तत्वों को भरने के लिए है, तो आप एक वेब ड्राइवर की आवश्यकता होगी पेज पूरी तरह से तत्वों का उपयोग करने के पॉप्युलेट है। आप ड्राइवर 'हेडलेस' (एक जीयूआई) के बिना चलाना चाहते हैं

from selenium import webdriver 

driver = webdriver.Firefox() 
driver.get("https://vine.co/v/i3pQ70vK3iv") 
video = driver.find_element_by_tag_name('video') 
print video.get_attribute('src') 
driver.close() 

Is it possible to run selenium (Firefox) web driver without a GUI?

संबंधित मुद्दे