Ir para conteúdo
Fórum Script Brasil

Andre Paiva

Membros
  • Total de itens

    1
  • Registro em

  • Última visita

Sobre Andre Paiva

Últimos Visitantes

O bloco dos últimos visitantes está desativado e não está sendo visualizado por outros usuários.

Andre Paiva's Achievements

0

Reputação

  1. Sou iniciante em Python e comecei seguindo um livro da coleção Head First . No capítulo 3 há um exemplo de um programa que envia uma mensagem a uma conta no Twitter. O usuário responde Y ou N e dependendo da resposta uma ação é tomada. Caso Y, o programa busca um valor no site( valor do grão de café ) e manda uma mensagem imediatamente para o Twitter. Caso N, o programa acessa o site a cada 15 minutos e mostrará uma mensagem apenas quando o valor do grão for menor que $4.74. Eles mostram uma imagem de uma conta no Twitter que recebeu a mensagem sobre o valor do café. Porém comigo tem apresentado os erros abaixo. Além destes erros, por mais que eu digite Y o programa nunca entra no if. Vai direto para o else. Não entendo porque. Este é o código com os erros logo abaixo. def get_price(): page = urllib.request.urlopen("http://beans.itcarlow.ie/prices-loyalty.html") text = page.read().decode("utf8") where = text.find('>$') start_of_price = where + 2 end_of_price = start_of_price + 4 return float(text[start_of_price:end_of_price]) def send_to_twitter(): msg = "I am a message that will be sent to Twitter" password_manager = urllib.request.HTTPPasswordMgr() password_manager.add_password("Twitter API", "http://twitter.com/statuses", "ARGInforma", "doe099do106") http_handler = urllib.request.HTTPBasicAuthHandler(password_manager) page_opener = urllib.request.build_opener(http_handler) urllib.request.install_opener(page_opener) params = urllib.parse.urlencode({'status':msg}) resp = urllib.request.urlopen("http://twitter.com/statuses/update.json" , params) ( apresenta erro nesta linha ) resp.read() price_now = input("Digite Y/N ") if price_now == "Y": send_to_twitter() else: current_price = 99.99 while current_price > 4.74: #time.sleep(900) current_price = get_price() send_to_twitter() Na hora de postar está sem a identação. Mas o código está identado exatamente como no livro. Traceback (most recent call last): File "E:\Java\Head_Python\src\Chapter_03\get_price_twitter.py", line 39, in <module> send_to_twitter() File "E:\Java\Head_Python\src\Chapter_03\get_price_twitter.py", line 28, in send_to_twitter resp = urllib.request.urlopen("http://twitter.com/statuses/update.json" ,"none", params) File "C:\Python32\lib\urllib\request.py", line 138, in urlopen return opener.open(url, data, timeout) File "C:\Python32\lib\urllib\request.py", line 364, in open req = meth(req) File "C:\Python32\lib\urllib\request.py", line 1052, in do_request_ raise TypeError("POST data should be bytes" TypeError: POST data should be bytes or an iterable of bytes. It cannot be str. Obrigado pela atenção . Até mais.
×
×
  • Criar Novo...