Очистите веб-страницу, которая требует, чтобы они сначала предоставили вам файл cookie сеанса.

база данных "ролл". Однако URL-адрес, который мне нужен для доступа к этому файлу Excel:

http://nrega.ap.gov.in/Nregs/FrontServlet?requestType=HouseholdInf_engRH&hhid=192420317026010002&actionVal=musterrolls&type=Normal

требует, чтобы у меня был файл cookie сеанса с правительственного сайта, прикрепленного к запросу.

Как я могу получить файл cookie сеанса с первоначальным запросом на целевую страницу (когда они предоставляют вам файл cookie сеанса), а затем использовать его, чтобы перейти по указанному выше URL-адресу, чтобы получить наш файл Excel? Я использую Google App Engine, используя Python.

Я попробовал это:

import urllib2
import cookielib

url = 'http://nrega.ap.gov.in/Nregs/FrontServlet?requestType=HouseholdInf_engRH&hhid=192420317026010002&actionVal=musterrolls&type=Normal'


def grab_data_with_cookie(cookie_jar, url):
    opener = urllib2.build_opener(urllib2.HTTPCookieProcessor(cookie_jar))
    data = opener.open(url)
    return data

cj = cookielib.CookieJar()

#grab the data 
data1 = grab_data_with_cookie(cj, url)
#the second time we do this, we get back the excel sheet.
data2 = grab_data_with_cookie(cj, url)

stuff2  = data2.read()

Я почти уверен, что это не лучший способ сделать это. Как я могу сделать это более аккуратно или даже с помощью библиотеки запросов?

5
задан rd108 18 March 2012 в 21:15
поделиться