<?xml version="1.0" encoding="utf-8" standalone="yes"?>
<rss version="2.0" xmlns:atom="http://www.w3.org/2005/Atom">
  <channel>
    <title>Python on Tiago Costa</title>
    <link>https://tiagoscosta.tpps.com.br/tags/python/</link>
    <description>Recent content in Python on Tiago Costa</description>
    <generator>Hugo</generator>
    <language>pt-br</language>
    <lastBuildDate>Thu, 08 Jan 2026 12:57:00 +0000</lastBuildDate>
    <atom:link href="https://tiagoscosta.tpps.com.br/tags/python/index.xml" rel="self" type="application/rss+xml" />
    <item>
      <title>📝 Extração de Dados em Mainframe: Mapeando Coordenadas com PHP e s3270</title>
      <link>https://tiagoscosta.tpps.com.br/posts/-extra%C3%A7%C3%A3o-de-dados-em-mainframe-mapeando-coordenadas-com-php-e-s3270/</link>
      <pubDate>Thu, 08 Jan 2026 12:57:00 +0000</pubDate>
      <guid>https://tiagoscosta.tpps.com.br/posts/-extra%C3%A7%C3%A3o-de-dados-em-mainframe-mapeando-coordenadas-com-php-e-s3270/</guid>
      <description>&lt;p&gt;No artigo anterior, link no estará no rodapé, aprendemos como garantir que a tela do Mainframe esteja pronta para leitura. Agora, o desafio é outro: como extrair informações específicas de uma grade de 24x80 caracteres sem transformar seu código em uma &amp;ldquo;sopa de números&amp;rdquo;.&lt;/p&gt;&#xA;&lt;h2 id=&#34;o-sistema-de-coordenadas-3270&#34;&gt;&#xA;  O Sistema de Coordenadas 3270&#xA;  &lt;a class=&#34;heading-link&#34; href=&#34;#o-sistema-de-coordenadas-3270&#34;&gt;&#xA;    &lt;i class=&#34;fa-solid fa-link&#34; aria-hidden=&#34;true&#34; title=&#34;Link para o cabeçalho&#34;&gt;&lt;/i&gt;&#xA;    &lt;span class=&#34;sr-only&#34;&gt;Link para o cabeçalho&lt;/span&gt;&#xA;  &lt;/a&gt;&#xA;&lt;/h2&gt;&#xA;&lt;p&gt;Diferente de sistemas web onde os elementos são identificados por IDs ou Classes, no Mainframe tudo é baseado em &lt;strong&gt;posição fixa&lt;/strong&gt;. A tela é uma matriz rígida.&lt;/p&gt;</description>
    </item>
    <item>
      <title>📝 Automação de Mainframe com PHP: O Guia de Sobrevivência ao s3270</title>
      <link>https://tiagoscosta.tpps.com.br/posts/automa%C3%A7%C3%A3o-de-mainframe-com-php-o-guia-de-sobreviv%C3%AAncia-ao-s3270/</link>
      <pubDate>Thu, 08 Jan 2026 12:54:00 +0000</pubDate>
      <guid>https://tiagoscosta.tpps.com.br/posts/automa%C3%A7%C3%A3o-de-mainframe-com-php-o-guia-de-sobreviv%C3%AAncia-ao-s3270/</guid>
      <description>&lt;p&gt;Automatizar terminais 3270 (Mainframes) usando PHP é um desafio que mistura protocolos modernos com sistemas de décadas de existência. O segredo de uma automação que não &amp;ldquo;quebra&amp;rdquo; está na forma como você lê os dados da tela.&lt;/p&gt;&#xA;&lt;h2 id=&#34;1-o-problema-da-velocidade-php-vs-mainframe&#34;&gt;&#xA;  1. O Problema da Velocidade: PHP vs. Mainframe&#xA;  &lt;a class=&#34;heading-link&#34; href=&#34;#1-o-problema-da-velocidade-php-vs-mainframe&#34;&gt;&#xA;    &lt;i class=&#34;fa-solid fa-link&#34; aria-hidden=&#34;true&#34; title=&#34;Link para o cabeçalho&#34;&gt;&lt;/i&gt;&#xA;    &lt;span class=&#34;sr-only&#34;&gt;Link para o cabeçalho&lt;/span&gt;&#xA;  &lt;/a&gt;&#xA;&lt;/h2&gt;&#xA;&lt;p&gt;O PHP executa instruções em microssegundos. Já o Mainframe processa dados em uma arquitetura baseada em blocos e buffers de rede. Se o seu script tentar ler a tela antes do mainframe terminar de pintá-la, você obterá dados incompletos ou erros de sincronia.&lt;/p&gt;</description>
    </item>
    <item>
      <title>📝 Diferença entre Web Crawler e Web Scrapping</title>
      <link>https://tiagoscosta.tpps.com.br/posts/diferen%C3%A7a-entre-web-crawler-e-web-scrapping/</link>
      <pubDate>Thu, 18 Dec 2025 09:56:00 +0000</pubDate>
      <guid>https://tiagoscosta.tpps.com.br/posts/diferen%C3%A7a-entre-web-crawler-e-web-scrapping/</guid>
      <description>&lt;p&gt;Embora os termos &lt;strong&gt;Web Crawler&lt;/strong&gt; e &lt;strong&gt;Web Scraping&lt;/strong&gt; sejam frequentemente usados como sinônimos, eles desempenham papéis distintos (mas complementares) no ecossistema de coleta de dados na internet.&lt;/p&gt;&#xA;&lt;p&gt;Imagine a internet como uma imensa biblioteca: o &lt;strong&gt;Crawler&lt;/strong&gt; é o bibliotecário que percorre os corredores anotando quais livros existem, enquanto o &lt;strong&gt;Scraper&lt;/strong&gt; é o pesquisador que abre um livro específico para copiar um parágrafo importante.&lt;/p&gt;&#xA;&lt;hr&gt;&#xA;&lt;h2 id=&#34;1-web-crawler-o-explorador&#34;&gt;&#xA;  1. Web Crawler: O Explorador&#xA;  &lt;a class=&#34;heading-link&#34; href=&#34;#1-web-crawler-o-explorador&#34;&gt;&#xA;    &lt;i class=&#34;fa-solid fa-link&#34; aria-hidden=&#34;true&#34; title=&#34;Link para o cabeçalho&#34;&gt;&lt;/i&gt;&#xA;    &lt;span class=&#34;sr-only&#34;&gt;Link para o cabeçalho&lt;/span&gt;&#xA;  &lt;/a&gt;&#xA;&lt;/h2&gt;&#xA;&lt;p&gt;O objetivo principal de um Crawler (também conhecido como spider ou bot) é a &lt;strong&gt;indexação&lt;/strong&gt;. Ele navega de link em link para descobrir novas páginas e entender a estrutura de um site.&lt;/p&gt;</description>
    </item>
    <item>
      <title>📝 Desmistificando o s3270: A Ponte Invisível para o Mainframe</title>
      <link>https://tiagoscosta.tpps.com.br/posts/desmistificando-o-s3270-a-ponte-invis%C3%ADvel-para-o-mainframe/</link>
      <pubDate>Wed, 26 Nov 2025 10:06:00 -0300</pubDate>
      <guid>https://tiagoscosta.tpps.com.br/posts/desmistificando-o-s3270-a-ponte-invis%C3%ADvel-para-o-mainframe/</guid>
      <description>&lt;p&gt;No mundo da modernização de sistemas, nem sempre é possível reescrever o código legado. Muitas das maiores instituições financeiras e seguradoras do mundo ainda rodam seus núcleos em mainframes IBM. O desafio surge quando precisamos conectar uma aplicação web moderna ou um script de automação a essas telas verdes antigas.&lt;/p&gt;&#xA;&lt;p&gt;É aqui que entra o &lt;strong&gt;s3270&lt;/strong&gt;.&lt;/p&gt;&#xA;&lt;h4 id=&#34;o-que-é-o-s3270&#34;&gt;&#xA;  &lt;strong&gt;O que é o s3270?&lt;/strong&gt;&#xA;  &lt;a class=&#34;heading-link&#34; href=&#34;#o-que-%c3%a9-o-s3270&#34;&gt;&#xA;    &lt;i class=&#34;fa-solid fa-link&#34; aria-hidden=&#34;true&#34; title=&#34;Link para o cabeçalho&#34;&gt;&lt;/i&gt;&#xA;    &lt;span class=&#34;sr-only&#34;&gt;Link para o cabeçalho&lt;/span&gt;&#xA;  &lt;/a&gt;&#xA;&lt;/h4&gt;&#xA;&lt;p&gt;O s3270 é um emulador de terminal &lt;strong&gt;scriptáve&lt;/strong&gt;l e &lt;strong&gt;headless&lt;/strong&gt; (sem monitor/interface gráfica) para sessões IBM 3270. Ele faz parte da suíte open-source &lt;strong&gt;x3270&lt;/strong&gt;.&lt;/p&gt;</description>
    </item>
    <item>
      <title>📝 Logging robusto em Python: Rotação Diária e Rastreabilidade</title>
      <link>https://tiagoscosta.tpps.com.br/posts/-artigo-t%C3%A9cnico-implementando-um-sistema-de-logging-robusto-em-python-com-rota%C3%A7%C3%A3o-di%C3%A1ria/</link>
      <pubDate>Mon, 24 Nov 2025 23:40:00 -0300</pubDate>
      <guid>https://tiagoscosta.tpps.com.br/posts/-artigo-t%C3%A9cnico-implementando-um-sistema-de-logging-robusto-em-python-com-rota%C3%A7%C3%A3o-di%C3%A1ria/</guid>
      <description>&lt;p&gt;O logging é uma prática essencial no desenvolvimento de software, permitindo rastrear o comportamento de uma aplicação, diagnosticar problemas e monitorar o desempenho. O módulo &lt;code&gt;logging&lt;/code&gt; padrão do Python é poderoso e flexível.&lt;/p&gt;&#xA;&lt;p&gt;Este artigo detalha a estrutura completa de um sistema de logging customizado em Python, demonstrando como encapsulá-lo em um módulo dedicado e utilizá-lo em sua aplicação principal.&lt;/p&gt;&#xA;&lt;hr&gt;&#xA;&lt;p&gt;&lt;strong&gt;1. Módulo de Configuração de Logging (&lt;/strong&gt;&lt;code&gt;log_config.py&lt;/code&gt;&lt;strong&gt;)&lt;/strong&gt;&lt;/p&gt;&#xA;&lt;p&gt;A seguir, apresentamos o script completo que configura o sistema de logging, incluindo a rotação de arquivos, o registro em console e as funções auxiliares para rastreabilidade.&lt;/p&gt;</description>
    </item>
    <item>
      <title>📝 PyAutoGUI: Automação Simples e Útil</title>
      <link>https://tiagoscosta.tpps.com.br/posts/pyautogui-automa%C3%A7%C3%A3o-simples-e-%C3%BAtil/</link>
      <pubDate>Thu, 20 Nov 2025 20:53:00 -0300</pubDate>
      <guid>https://tiagoscosta.tpps.com.br/posts/pyautogui-automa%C3%A7%C3%A3o-simples-e-%C3%BAtil/</guid>
      <description>&lt;p&gt;O &lt;strong&gt;PyAutoGUI&lt;/strong&gt; é uma poderosa biblioteca &lt;strong&gt;Python&lt;/strong&gt; que permite que seus scripts controlem o &lt;strong&gt;mouse&lt;/strong&gt; e o &lt;strong&gt;teclado&lt;/strong&gt; para automatizar tarefas de interface gráfica do usuário (GUI). Ele simula ações humanas, tornando-o incrivelmente útil para qualquer pessoa que precise interagir repetidamente com aplicativos de desktop, websites ou jogos. Sua maior vantagem é a &lt;strong&gt;facilidade de uso&lt;/strong&gt; e a &lt;strong&gt;portabilidade&lt;/strong&gt;, funcionando em sistemas operacionais como Windows, macOS e Linux.&lt;/p&gt;&#xA;&lt;hr&gt;&#xA;&lt;p&gt;&lt;strong&gt;Por Que PyAutoGUI é Tão Fácil de Usar?&lt;/strong&gt;&lt;/p&gt;</description>
    </item>
  </channel>
</rss>
