Ir para conteúdo
Fórum Script Brasil

roddrigolago

Membros
  • Total de itens

    1
  • Registro em

  • Última visita

Sobre roddrigolago

roddrigolago's Achievements

0

Reputação

  1. na verdade, o nome da tag é CODE. :blush: Ainda bem que tem alguém que sabe o nome das tags para fazer estas importantíssimas, urgentíssimas e muito relevantes correções. Olá amigos.Sou novo no fórum e também resolvi estudar programação sem fazer nenhum curso. Durante algumas pesquisas que fiz resolvi comprar o livro "USE A CABEÇA - PROGRAMAÇÃO". Este livro ensina de forma bem didática os princípios da programação e utiliza como linguagem padrão o Python. Sei um pouco da situação que o colega nos mostrou no início deste tópico, pois eu também estou passando pela mesma. Ainda não sabemos exatamente usar os termos corretos da programação, mas a dúvida é a seguinte: Foi gerada uma situação onde nós precisamos enviar o valor do grão de café para o diretor de uma empresa que compra café via twitter já que ele está sempre viajando. Após toda a contrução, finalizamos o código da seguinte forma: import urllib.request import time def send_to_twitter(msg): password_manager = urllib.request.HTTPPasswordMgr() password_manager.add_password("Twitter API","http://twitter.com/statuses","roddrigolago","230420389") 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) resp.read() def get_price(): page = urllib.request.urlopen("http://www.beans-r-us.biz/prices.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]) price_now = input("Do you want to see the price now(y/n)?") if price_now == "y": send_to_twitter(get_price()) else: price = 99.99 while price > 4.74: time.sleep(900) price = get_price() send_to_twitter("Buy!") Feito isso, nós processamos o código para saber se estar tudo correto onde irá aparecer a seguinte pergunta: Do you want to see the price now? Quando respondemos "y" uma mensagem deve ser enviada automaticamente para o twitter do diretor da empresa informando o valor atual do grão, mas na verdade está aparecendo o seguinte erro: Traceback (most recent call last): File "C:\Documents and Settings\Rodrigo\Desktop\Exercícios de programação Python\Capítulo 3\Enviando o preço através de mensagem via twitter", line 26, in <module> send_to_twitter(get_price()) File "C:\Documents and Settings\Rodrigo\Desktop\Exercícios de programação Python\Capítulo 3\Enviando o preço através de mensagem via twitter", line 11, in send_to_twitter resp = urllib.request.urlopen("http://twitter.com/statuses/update.json", 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. A dúvida é saber porque não estamos conseguindo enviar a mensagem para o twitter. Há algum erro no código? Ficarei grato se puderem ajudar. OBS: Eu copiei e colei o código, mas não apareceram as indentações
×
×
  • Criar Novo...