मैं एक वेबसाइट की सामग्री को पढ़ने की कोशिश कर रहा हूं लेकिन मुझे एक खाली बाइट ऑब्जेक्ट मिलता है, b''
।
import urllib3
from urllib3 import PoolManager
urllib3.disable_warnings()
https = PoolManager()
r = https.request('GET', 'https://minemen.club/leaderboards/practice/')
print(r.status)
print(r.read())
जब मैं वेब ब्राउज़र में यूआरएल खोलता हूं तो मुझे वेबसाइट दिखाई देती है, और r.status
200 (सफलता) है।
r.read()
सामग्री क्यों नहीं लौटाता?
3 जवाब
आपको क्या लगता है कि यह गलत है? निम्नलिखित का प्रयास करें, आपके पास बहुत अधिक आउटपुट होगा:
print(r.data)
इसका उपयोग कैसे करें, यह देखने के लिए HTTPResponse देखें। r
वस्तु जो आपको मिली है।
requests
लाइब्रेरी का उपयोग करने का प्रयास करें।
website_content = requests.get(url)
print(website_content.content) # website page content
इस प्रकार urllib3.response.HTTPResponse.read
ए> काम करना चाहिए।
इसे उदाहरण के लिए यहां urllib3 के योगदानकर्ताओं में से एक द्वारा समझाया गया है:
यह दस्तावेज़ीकरण के बारे में है। आप डिफ़ॉल्ट रूप से
read()
का उपयोग नहीं कर सकते, क्योंकि डिफ़ॉल्ट रूप से सभी सामग्री का उपयोगdata
में किया जाता है। अगर आप चाहते हैंread()
काम करने के लिए, आपको कॉल परpreload_content=True
कोurlopen
पर सेट करना होगा। इसे आजमाना चाहते हैं?
तो आप बस r.data
का उपयोग कर सकते हैं।
संबंधित सवाल
जुड़े हुए प्रश्न
नए सवाल
python
पायथन एक बहु-प्रतिमान है, गतिशील रूप से टाइप किया हुआ, बहुउद्देशीय प्रोग्रामिंग भाषा है। यह एक साफ और एक समान वाक्यविन्यास सीखने, समझने और उपयोग करने के लिए त्वरित होने के लिए डिज़ाइन किया गया है। कृपया ध्यान दें कि अजगर 2 आधिकारिक तौर पर 01-01-2020 के समर्थन से बाहर है। फिर भी, संस्करण-विशिष्ट पायथन सवालों के लिए, [अजगर -२.०] या [अजगर -३.x] टैग जोड़ें। पायथन वेरिएंट (जैसे, ज्योथन, PyPy) या लाइब्रेरी (उदा।, पांडस और न्यूमपी) का उपयोग करते समय, कृपया इसे टैग में शामिल करें।
urllib3.disable_warnings()
और देखूंगा कि क्या आपको कोई उपयोगी संदेश मिलता है।