def return_mouser_cookie(**dict_args): ''' dict_args: 关键字参数 1. domain,域名,默认为'cn.mouser.com',也可以是其它的 但是必须保证cookie文本文件中设置了对应的cookie取值 2. language,语言,必须为['english','chinese']的一种 3. url_cookie,cookie文本文件绝对路径,必须仿照现有的文本文件格式 2013年 08月 02日 星期五 17:07:34 CST ''' fun = 'function return_mouser_cookie of %s' % file_name import copy mouser_c = pickle.loads(read_hc_file('','',file_url=os.path.join(DIRNAME,file_mc_template))) ''' 获取一个基本的cookie模板对象 ''' cookie_obj = mouser_c['.mouser.com']['/']['ASP.NET_SessionId']#下次找机会 用相关模块设置空cookie模板对象 2013年 08月 02日 星期五 17:15:59 CST ''' 此时mouser_c 为字典{}类型 需要清空内部的 k-v键字键值数据 ''' mouser_c.clear() ''' domain path name value 从httpfox工具中获取下列列表数据 ''' domain = dict_args.get('domain', 'www.mouser.com')#默认 cn.mouser.com域名网址 language = dict_args.get('language','english')#默认 英文文本内容 美元货币富豪 if not dict_language.has_key(language): raise ValueError,'### %s line %s invalid language: %s ###' % (fun,59,language) language_cookie = ('.mouser.com','/','preferences',dict_language[language]) hc = open(os.path.join(DIRNAME,file_mc_access),'r').read() re_cookie = '===== start cookie on domain: %s =====(.*?)===== end cookie =====' % domain res_cookie = re.findall(re_cookie, hc, flags=16) if res_cookie: list_line = [one for one in res_cookie[0].split('\n') if one] ''' name value path domain expires ~N~R~O cookie~Z~D5个~G~M~A~^~@� ''' list_nvpde = [one.split('\t') for one in list_line] list_dpnv = [(d,p,n,v) for n,v,p,d,e in list_nvpde if n!= 'preferences']#过滤preferences选项 list_dpnv.append(language_cookie)#加上特殊设置的preferences选项 else: raise ValueError,'### %s line %s analyse list_dpnv error and return []###' % (fun,72) if debug: print '%s cookie list_dpnv(domain path name value) is: \n' % fun,list_dpnv for domain,path,name,value in list_dpnv: cookie_new = copy.deepcopy(cookie_obj) cookie_new.domain = domain cookie_new.path = path cookie_new.name = name cookie_new.value = value if not mouser_c.has_key(domain): mouser_c[domain] = {} dd = mouser_c[domain] if not dd.has_key(path): dd[path] = {} dp = dd[path] if not dp.has_key(name): dp[name] = cookie_new dn = dp[name] return mouser_c