कहो, मैं इस पेज पर जाता हूँ

https://www.reddit.com/r/starcraft/

सहेजें, इसका स्रोत कोड। फिर lxml का प्रयोग इस प्रकार करें:

tree = etree.parse('redditsample.html', parser=etree.HTMLParser());
tree.xpath('//div')

और मुझे यही मिलता है:

[<Element div at 0x7f185ac9f908>]

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

धन्यवाद।

0
drsealks 1 मार्च 2017, 03:23

1 उत्तर

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

जांचें कि क्या आपके द्वारा सहेजी गई redditsample.html फ़ाइल https://www.reddit जैसी ही है। कॉम/आर/स्टारक्राफ्ट/

Reddit दर सीमित करने को लागू करता है, इसलिए यदि आपने अपनी स्क्रिप्ट को कई बार चलाया है, तो आपके पास वह हो सकता है। उस स्थिति में आपकी सहेजी गई redditsample.html फ़ाइल में केवल यह कहते हुए एक reddit संदेश हो सकता है कि आपने उनकी दर सीमित कर दी है और आपको बाद में अपने अनुरोध को फिर से करने की आवश्यकता है।

किसी भी दर को सीमित किए बिना उस URL का अनुरोध करते हुए, .xpath('//div') परिणाम 429 नोड्स है:

>>> len(etree.fromstring(requests.get('https://www.reddit.com/r/starcraft/')
    .content, parser=etree.HTMLParser()).xpath('//div'))
429
1
sideshowbarker 1 मार्च 2017, 03:48