9

के साथ Instagram को कैसे स्क्रैप करें मैं सार्वजनिक Instagram खाते से चित्रों को स्क्रैप करना चाहता हूं। मैं बीएस 4 के साथ बहुत परिचित हूं इसलिए मैंने इसके साथ शुरुआत की। क्रोम पर तत्व निरीक्षक का उपयोग करते हुए, मैंने नोट किया कि चित्र एक अनियंत्रित सूची में हैं और ली में कक्षा 'फोटो' है, इसलिए मुझे लगता है, क्या नरक - खोज के साथ स्क्रैप करना मुश्किल नहीं हो सकता है, है ना?सुंदर सूप

गलत: यह कुछ भी (नीचे कोड) वापस नहीं करता है और मैं जल्द ही है कि कोड तत्व निरीक्षक में दिखाया गया है और कोड है कि मैं अनुरोध से आकर्षित किया कोड मैं खींच लिया में एक ही उर्फ ​​कोई बिना क्रम वाली सूची नहीं थे नोटिस अनुरोध से

कोई विचार है कि मैं तत्व निरीक्षक में दिखाए गए कोड को कैसे प्राप्त कर सकता हूं?

from bs4 import BeautifulSoup 
import requests 
import re 

r = requests.get('http://instagram.com/umnpics/') 
soup = BeautifulSoup(r.text) 
for x in soup.findAll('li', {'class':'photo'}): 
    print x 

आपकी मदद के लिए धन्यवाद:

बस रिकार्ड के लिए, यह शुरू करने के लिए है, जो काम नहीं किया, क्योंकि बिना क्रम वाली सूची वहाँ नहीं था मेरे कोड था।

+0

पृष्ठ जावास्क्रिप्ट का भारी उपयोग करता है। आप अपने ब्राउजर द्वारा डाउनलोड किया गया यह देखने के लिए पेज * स्रोत * (क्रोम: व्यू -> डेवलपर -> स्रोत देखें) को देखना चाहते हैं। इंस्पेक्टर में आप जो देखते हैं वह पृष्ठ से संदर्भित जावास्क्रिप्ट चलाने के बाद ब्राउज़र द्वारा बनाया गया है। –

उत्तर

8

यदि आप पृष्ठ के स्रोत कोड को देखते हैं, तो आप देखेंगे कि कुछ जावास्क्रिप्ट वेबपृष्ठ उत्पन्न करता है। तत्व ब्राउज़र में जो आप देखते हैं वह स्क्रिप्ट चलाने के बाद वेबपृष्ठ है, और सुंदरसूप को केवल HTML फ़ाइल मिलती है। प्रस्तुत किए गए वेबपृष्ठ को पार्स करने के लिए आपको अपने लिए वेबपृष्ठ प्रस्तुत करने के लिए Selenium जैसे कुछ उपयोग करने की आवश्यकता होगी।

from bs4 import BeautifulSoup 
import selenium.webdriver as webdriver 

url = 'http://instagram.com/umnpics/' 
driver = webdriver.Firefox() 
driver.get(url) 

soup = BeautifulSoup(driver.page_source) 

for x in soup.findAll('li', {'class':'photo'}): 
    print x 

अब सूप होना चाहिए कि आप क्या उम्मीद कर रहे हैं:

तो, उदाहरण के लिए, यह सेलेनियम के साथ इस तरह दिखाई देंगे है।