2011-10-05 21 views
7

में प्रिंटिंग रखता है मैं वेब पेज पर परीक्षण प्रयोजनों के लिए पाइथन और पायकुरल का उपयोग करने वाला एक नौसिखिया हूं। हालांकि, pycurl टर्मिनल में लौटा एचटीएमएल प्रिंटिंग रखता है जो तनाव परीक्षण को इससे भी अधिक समय लेता है। मैं उपयोग कर रहा एक ऐसा pycurl कोड नीचे पोस्ट किया गया है। क्या कहीं भी प्रिंट या लिखने के बिना pycurl चलाने का कोई तरीका है? किसी भी सहायता की सराहना की जाएगी।पायकुरल टर्मिनल

p = pycurl.Curl() 
p.setopt(pycurl.POST, 0) 
p.setopt(pycurl.COOKIE, sessioncookie) 
p.setopt(pycurl.URL, 'http://example.com/logoff.php') 
p.perform() 
p.close() 

उत्तर

19

Pycurl प्रलेखन भयानक है, लेकिन मुझे लगता है कि आप एक समारोह है कि कुछ नहीं करता है, उदाहरण के लिए WRITEFUNCTION सेट करना चाहते हैं

p.setopt(pycurl.WRITEFUNCTION, lambda x: None) 

इसके अलावा, मैं रिकॉर्ड है कि मैंने सोचा था कि "सेट करता है सब कुछ" API वीएमएस के साथ बाहर गया के लिए राज्य के लिए कामना करता हूं। Gaaah।

+0

यह काम किया। धन्यवाद: डी – jyim89

+0

'पिकुरल दस्तावेज भयानक है' - इतना सच – ddnomad

3

इसे आजमा सकते हैं?

devnull = open('/dev/null', 'w') 
p.setopt(pycurl.WRITEFUNCTION, devnull.write) 

या सिर्फ एक फ़ंक्शन जो कुछ भी नहीं करता है।

1

मुझे यहां सूचीबद्ध दोनों दृष्टिकोणों के साथ कोई भाग्य नहीं मिला है। निम्न त्रुटि पर ले जाने:

pycurl.error: (23, 'Failed writing body (0 != 108)') 

प्रलेखन के अनुसार दोनों lambda x: None और devnull.write अच्छा विकल्प होना चाहिए:

The WRITEFUNCTION callback may return the number of bytes written. If this number is not equal to the size of the byte string, this signifies an error and libcurl will abort the request. Returning None is an alternate way of indicating that the callback has consumed all of the string passed to it and, hence, succeeded.

http://pycurl.sourceforge.net/doc/callbacks.html#WRITEFUNCTION

हालांकि अपने प्रोजेक्ट में मैं ठीक करने के लिए निम्न कार्य करने के लिए किया था यह समस्या:

c.setopt(pycurl.WRITEFUNCTION, lambda bytes: len(bytes)) 

दूसरे शब्दों में जब मैंने देखा तो बाइट्स की संख्या को वापस करने के लिए वैकल्पिक नहीं था। devnull.write वास्तव में लिखा बाइट्स की संख्या वापस करता है, हालांकि मैंने उस पर ध्यान नहीं दिया। संभवतः बाइट बनाम तारों के साथ कुछ समस्या है।

ध्यान दें कि मैं अजगर 3. उपयोग कर रहा हूँ मैं अनुमान है कि इस अजगर 2.

0

पर लागू नहीं होता उत्पादन छुपाने के लिए, 0 करने के लिए अत्यधिक शब्द बदलने के लिए:

p.setopt(pycurl.VERBOSE, 0)