मैं विकिपीडिया में प्रवेश करके मेरे उपयोगकर्ता पृष्ठ पर कुछ कार्रवाई करने, MediaWiki एपीआई का उपयोग कर के लिए एक सरल स्क्रिप्ट लिखने की कोशिश कर रहा हूँ। हालांकि, मैं कभी नहीं (: https://en.wikipedia.org/wiki/Wikipedia:Creating_a_bot#Logging_in इस पेज से) पहले लॉगिन अनुरोध पिछले पाने के लिए लग रहे हैं। मुझे नहीं लगता कि सत्र कुकी है कि मैं सेट भेजा जा रहा है है।अजगर urllib2 के साथ HTTP शीर्ष लेख में पारित सत्र कुकीज़?
import Cookie, urllib, urllib2, xml.etree.ElementTree
url = 'https://en.wikipedia.org/w/api.php?action=login&format=xml'
username = 'user'
password = 'password'
user_data = [('lgname', username), ('lgpassword', password)]
#Login step 1
#Make the POST request
request = urllib2.Request(url)
data = urllib.urlencode(user_data)
login_raw_data1 = urllib2.urlopen(request, data).read()
#Parse the XML for the login information
login_data1 = xml.etree.ElementTree.fromstring(login_raw_data1)
login_tag = login_data1.find('login')
token = login_tag.attrib['token']
cookieprefix = login_tag.attrib['cookieprefix']
sessionid = login_tag.attrib['sessionid']
#Set the cookies
cookie = Cookie.SimpleCookie()
cookie[cookieprefix + '_session'] = sessionid
#Login step 2
request = urllib2.Request(url)
session_cookie_header = cookieprefix+'_session='+sessionid+'; path=/; domain=.wikipedia.org; HttpOnly'
request.add_header('Set-Cookie', session_cookie_header)
user_data.append(('lgtoken', token))
data = urllib.urlencode(user_data)
login_raw_data2 = urllib2.urlopen(request, data).read()
मुझे लगता है कि समस्या request.add_header('Set-Cookie', session_cookie_header)
लाइन में कहीं है, लेकिन मुझे यकीन है कि के लिए पता नहीं है: यह मेरा कोड अब तक है। मैं इन अजगर पुस्तकालयों का उपयोग कैसे हर अनुरोध (जो एपीआई कार्यों का एक बहुत कुछ के लिए आवश्यक है) के साथ शीर्ष लेख में कुकीज़ भेजने के लिए करते हैं।
मैं उस के साथ जाना होगा। यह बहुत आसान है। धन्यवाद! –