2012-05-18 3 views
0

그래서 나는 12bet.co.uk에서 데이터를 긁어 내려고했습니다.python get 및 re-session session-cookie help를 사용 하시겠습니까?

import urllib2 
sid = 'lgvvtb45xlqtwe45wjp3wy45' # value copied from a Firefox session 
url = 'http://eu.12bet.co.uk/EuroSite/Match_data.aspx?Scope=Sport&Id=1&Sport=1&Market=d&RT=W&Game=0&OddsType=1' 
http_req_data = None 
http_req_header = {'User-Agent' : 'Mozilla/5.0 (Windows NT 5.1; rv:12.0) Gecko/20100101 Firefox/12.0', 
    'Accept' : 'text/html', 
    'Accept-Language' : 'en-us,en;q=0.5', 
    'DNT' : '1', 
    'Referer' : 'http://eu.12bet.co.uk/EuroSite/Euro_index.aspx', 
    'Cookie' : 'MuSou_eu=20110303; iom_territory=UK; LangKey=en; OddsType_12BETUUS01015=1; ASP.NET_SessionId='+sid+'', 
    'Connection' : 'keep-alive'} 
web_req = urllib2.Request(url, http_req_data, http_req_header) # create request object 
web_resp = urllib2.urlopen(web_req) # open the request object and return a handle 
print web_resp.info() 

이 내가 파이어 폭스 세션에서 SID 값을 복사/붙여 넣기 할 때 미세 (콘텐츠 길이 좋은 내용의 큰 = 제비 반환입니다) 작동 : 내가 원하는 정보를 대상으로 다음과 같은 파이썬 코드가 있습니다. 그러나 프로그래밍 방식으로 다음 코드와 같은 코드를 실행하여 프로그래밍 방식으로 sid 값을 얻으 려한다면 아래 코드에서 sid 값을 사용하여 위의 코드를 실행하면 콘텐츠가 반환되지 않습니다.

import urllib2, re 
url='http://eu.12bet.co.uk/EuroSite/Euro_index.aspx' 
http_req_data = None 
http_req_header = {'User-agent' : 'Mozilla/5.0 (Windows NT 5.1; rv:12.0) Gecko/20100101 Firefox/12.0', 
    'Accept' : 'text/html,application/xhtml+xml,application/xml;q=0.9,*/*;q=0.8', 
    'Accept-Language' : 'en-us,en;q=0.5', 
    'DNT' : '1', 
    'Connection' : 'keep-alive'} 
web_req = urllib2.Request(url, http_req_data, http_req_header) # create request object 
web_resp = urllib2.urlopen(web_req) # open the request object and return a handle 
print '==== HEADERS ====' 
print web_resp.info() 
headers = dict(web_resp.info()) 
cookies = headers['set-cookie'] 
print '==== MISC ====' 
print "cookies>"+cookies+"<" 
sid = re.search('ASP.NET_SessionId=(\w+)',cookies).group(1) 
print "sid>"+sid+"<" 

나는 이것을 여러 해 동안 연구 해왔다. 나는 그것을 해결할 수 없다. 그것은 내 머리를하고있다. 아무도 여기에 무엇이 잘못되었는지에 대한 단서를 주시겠습니까? 많은 고맙습니다.

+0

쿠키를 모두 전달해보십시오. – Riking

답변

0

첫 번째 응답에는 매번 다른 쿠키 값이 있으며 상태/일관성을 유지하기 위해 향후 요청할 때마다 다시 잡아서 보내야합니다.

+0

예. 쿠키를 기반으로하는 증분 업데이트를 사용하므로 백엔드는 모든 온 스크린 시장에 대한로드 확률에 반하여 업데이트 된 데이터 만 반환합니다. –

관련 문제