2013-08-21 49 views
0

我想寫一個簡單的python腳本來獲取一些數據並寫入某些文件。 (源代碼是使用urllib2的捲曲)。使用urllib2編碼python獲取一些數據

我的腳本:

#!/usr/bin/env python 
# -*- coding: utf-8 -*- 

import os, sys 
import urllib2 

pid = str(os.getpid()) 
pidfile = "/tmp/requisicoes.pid" 

if os.path.isfile(pidfile): 
    print "%s Coleta de requisições já esta rodando." % pidfile 
    sys.exit() 
else: 
    file(pidfile, 'w').write(pid) 

url = 'https://*******/quest_history.pl?GRAFICO=Grupo+Resolvedor&FORMATPERIOD=dia&PERIODO=last_year&REFGRAFICO=Termino&REFMETRICA=qtde&TABELA=0&FORMAT=csv&Numero=Tudo&Subcategoria=Tudo&Produto=Tudo&Grupo+Resolvedor=Tudo&Resolvedor=Tudo&Solicitante=Tudo&Unidade+Negocio=Tudo&Customer=Tudo&Origem=Tudo&Data+fechamento=Tudo&Data+abertura=Tudo&Rejeicoes=Tudo&Data+Abertura=Tudo&Data+Termino=Tudo&Data+Abertura+Call=Tudo&Call=Tudo&Tempo+de+Fila=Tudo&Tempo+de+Resolucao=Tudo&Rejeitado=Tudo&Tempo+de+Rejeicao=Tudo&Tempo+de+Abertura=Tudo&Categorizacao=Tudo&Site=Tudo&Grupo+de+Origem=Tudo&Cliente=Tudo&CNPJ=Tudo&Grupo+de+Clientes=Tudo&Tempo+para+resolucao=Tudo&Tempo+para+fechamento=Tudo&Tecnologia=Tudo&Papel+desempenhado=Tudo&Tempo+de+Resolucao+em+dias=Tudo' 

curlreq = urllib2.urlopen(url) 

curlresult = curlreq.read() 

anocsv = open('/tmp/csvano.csv', 'wb') 

anocsv.write(curlresult) 

anocsv.close() 

os.unlink(pidfile) 

我的腳本返回/tmp/csvano.csv

Numero;Subcategoria;Produto;Grupo Resolvedor;Resolvedor;Solicitante;Unidade Negocio;Customer;Origem;Data fechamento;Data abertura;Rejeicoes;Data Abertura;Data Termino;Data Abertura Call;Call;T  empo de Fila;Tempo de Resolucao;Rejeitado;Tempo de Rejeicao;Tempo de Abertura;Categorizacao;Site;Grupo de Origem;Cliente;CNPJ;Grupo de Clientes;Tempo para resolucao;Tempo para fechamento;Tecno  logia;Papel desempenhado;Tempo de Resolucao em dias;                                    
Q***;ouvidoria;dbi [tecnologia - falha tecnica operacao];ouvidoria;****;*** LTDA;***;***;Diretamente pelo  solicitante;17/07/2013 10:38:54 ;11/07/2013 16:31:38 ;;11/07/2013 16:31:38 ;17/07/2013 10:38:54 ;11/07/2013 16:31:37;CALL2259914;138.12;138.12;Nao;;0.00;ouvidoria/dbi [tecnologia - falha tecn  ica operacao];unknown;;***;09.468.079/0001-54;Outros clientes;de 5 a 6 dias;0;Nao;Areas externas a tecnologia;3; 
Q***;hosting;usuario [criacao];n1-operacao;****;SERVICE;*****;***;via Service Desk;15/01/2013 17:18:39 ;15/01/2013 08:55:35 ;;15/01/2013 08:  55:35 ;15/01/2013 17:18:39 ;15/01/2013 08:54:00;CALL1914127;8.38;8.38;Nao;;0.03;hosting/usuario [criacao];unknown;;***;09.296.295/0001-60;Clientes Premium;de 8  a 9 horas;81.66;Nao;Areas externas a tecnologia;1; 
Q***;email;folha - contato [alteracao];ti;****;****;****;***;via Service Desk;01/03/2013 18:12:41 ;01/03/2013 17:07:40 ;;01/03/2013 17:07:40 ;01/  03/2013 18:12:41 ;01/03/2013 17:07:39;CALL2000649;1.08;1.08;Nao;;0.00;email/folha - contato [alteracao];unknown;;***;;***;de 1 a 2 horas;0;Nao;Areas externas a tecnologia;1; 

,但我得到一些輸出,這個編碼Janu<el>rio, Jo<c3>o的文件,我需要解決這個..

有什麼想法嗎?

回答

0

最後,我找到了一些解決方案,我的問題。

失蹤了正被接收文件的編碼,然後失蹤變化爲utf8

我只需要加入這一行anocsv.write(curlresult.decode(「ISO8859-1」)編碼(「UTF -8'))