Mostrar jogos de futebol com transmissão televisiva

A mim também deixou de funcionar desde o dia 21. A primeira mensagem que me apareceu no erro do node, era para atualizar o node red companion, agora instalado pelo hacs. Ao fim de fazer essa actualização, aparece então o verdadeiro erro do node de não funcionar. Alguma coisa a ver com a data!?

O fluxo começa pelo request ao site e depois tem 2 html nodes que fazem o parse ao site. Este parse está a vir a vazio. Verifiquei o site e o css onde está a informação associada das datas e jogos estão iguais. Testei outro flow que tenho para obter os preços dos combustiveis de um site e tambem o parse fica sem dados. Alguma coisa entre o request e parse que mudou e ainda nao percebi o quê mas vou continuar a explorar o tema.

1 Curtiu

Boa tarde.
O site deve estar a bloquear o scrape à página com os jogos na televisão. Utilizem o seguinte link para obter os dados: https://www.futebol365.pt/feed/aeiou/jogos-na-tv/
Deve resolver o problema.

Bom dia a todos, alguém já conseguiu ultrapassar o problema ?

Obrigado

Fiz uns testes com um python script e de facto parece que algo se passa.
O que é estranho; robot.txt:

User-agent: *
Disallow: /admin/
Disallow: /fusos-horarios/
Sitemap: https://www.futebol365.pt/sitemap.xml
Sitemap: https://www.futebol365.pt/news_sitemap.xml

Não inclui: /jogos-na-tv/


Anyway
Ultrapassando os 403’s codes com a adição de selenium ao script, e um argumento de headless-browser, ultrapassa isso mas nunca encontra elementos.

Experimentei depois o script com outro site: “https://tudonumclick.com/futebol/jogos-na-tv/

Resultados para element (“h3”)

Jogos na TV - Quarta-feira, 06 de Março

Resultados para element (".table-futebol.table.table-bordered.table-stripped")

00:30 Nacional Asunción Palestino SPORT TV1
11:00 Valadares Gaia FM Marítimo FM CANAL 11
15:00 Sp. Braga S19 Sporting S19 CANAL 11
17:45 Sporting Atalanta SPORT TV1
20:00 Man City Kobenhavn ELEVEN SPORTS 2
20:00 Real Madrid RB Leipzig ELEVEN SPORTS 1
22:00 CD Everton Unión La Calera SPORT TV3

O que parece resolver o nosso problema. Agora é uma questão de alterar o flow.
Fiz umas experiências, mas não tenho o habito de utilizar node-red… melhor alguém tratar disso. :sweat_smile:

Aqui continua sem dar, penso que é na parte da extração também, fiz ali uns testes e aquela variable está a vir vazia, agora não percebo muito de como mudar isto sinceramente e está a fazer muita falta, usava muito isto para me guiar, agora tenho de ir ao sofascore eheheh

Já que ninguém se aventurou com o Node-Red, fiz outra solução.

Quem não tiver, vá ao HACS e instale o Multiscrape. Depois de reiniciar, acrescente, no configuration.yaml:

multiscrape:
  - name: Football Data  
    log_response: true
    resource: https://tudonumclick.com/futebol/jogos-na-tv/
    scan_interval: 10800 #3horas
    sensor:
      - unique_id: football_date
        name: Football Date
        select: "section#page-content h3:nth-child(3)"
        value_template: |
          {{ value.split('- ')[1] }}
      - unique_id: football_game
        name: Football Game
        value_template: "{{ value_json[0] }}"
        attributes:
          - name: list
            select_list: "section#page-content table:nth-child(4)"
            value_template: |
              {{ value.split("   ") | map('trim') | map('replace', 'SPORTS', '') | reject('search', 'PFC') | list }}

Depois de actualizar o custom component:
Developer Tools > Yaml > Multiscrape Scrape Component

Criar uma Markdown Card, e pôr:

{{states('sensor.football_date') }} 
</font> <hr>
{% for item in state_attr('sensor.football_game', 'list') %}
- {{ item }}
{% endfor %}

O resultado será algo parecido:
Untitled-4

Edit:
Alterei o value_template:

value_template: |
  {{ value.split("   ") | map('trim') | list }}

Para resolver o facto de o site acrescentar um logo aos 3 grandes; o que fazia ocorrer algo como [exemplo do “FC Porto”]:
Untitled-6

Em vez de:
Untitled-7

E se, como o @huguitosilva1, quiserem eliminar o “SPORTS” do “ELEVEN SPORTS X”, usem:

value_template: |
  {{ value.split("   ") | map('trim') | map('replace', 'SPORTS', '') | list }}
1 Curtiu

Muito obrigado pela ajuda. Funcionou, só retirei os pontos de início e substitui SPORTS por nada para não ficar muito grande quando é a Eleven Sports. Top :grinning:

1 Curtiu

Realmente, sem os pontos fica melhor. :sweat_smile:

1 Curtiu

Tentei via node red até porque tenho 2 scrapes no mesmo site, um para obter os jogos e canais, outro para obter os jogos por competição e depois faço um cruzamento de dados mostrando o país e nome da competição.

Tentei diferentes bibliotecas de http request no node red mas não está a retornar o HTML da página. Vou continuar a explorar o tema.

2 Curtiram

Ugh… Um último acréscimo. :roll_eyes:

{{ value.split("   ") | map('trim') | map('replace', 'SPORTS', '') | reject('search', 'PFC') | list }}

Com esse template já a fila com jogos a dar no(a) PFC (imagino que seja algum canal brasileiro) não aparece.

Assim só surgem jogos em canais portugueses.

edit: Uma boa idea será também alterar o “scan_interval: 10800” (3 em 3h) - o site parece não actualizar de hora em hora; e imagino que não queremos a repetição do outro site a “bloquear” scrape.

Fiz umas alterações, se alguém quiser posso partilhar:
image

Ficou interessante, com os destaques.

Tendo vários dias, não fica demasiado convulso em dias como sexta, sábado e domingo, quando há muitos jogos?

Estou a contemplar é eliminar também as rows com “FM”, “S17”, “S19” e até “Canal 11”.

edit:

{{ value.split("   ") | map('trim') | reject('search', 'PFC') | reject('search', 'FM') | reject('search', 'S17') | reject('search', 'S19') | reject('search', 'CANAL 11') | list }}

Boas tardes,

Alguem conseguiu resolver a parte do node-red?

Isso é óptimo! Eu também gosto de futebol, então eu gostaria de ver o futebol muitas vezes

Boas, alguma coisa mudou no site onde estava a consultar a info dos jogos. Colocaram algum bloqueio que ao fazer o request, não está a ser possível ter acesso ao html da página.

Encontrei onde site semelhante e estou a construir um parser de forma a ter a informação semelhante. Quando concluir, partilho o flow e card.

1 Curtiu

Ok amigo. Ficaremos à espera :+1:

Se eu tivesse que escolher uma plataforma de aposta para ficar jogando o resto da vida, então eu escolheria a plataforma leonbet, isso porque de todas que fui testando durante estes últimos anos, esta foi a única que prestou, ou seja, que realmente soltou um dinheiro. Eu vivia pesquisando na internet uma plataforma de slotes e aposta esportiva e fui encontrando várias e apostando. Mas posso afirmar com tota certeza que nenhuma foi boa o suficiente para me tirar da leonbet, nessa plataforma eu posso fazer boas apostas esportivas e jogar joguinho do avião ou tiguinho sem muita burocracia. É uma plataforma simples e direta que cumpre o que promete.

Boas malta, tenho o parser praticamente concluido. falta-me ir acertando algumas coisas a nivel de canais, nomes e imagens.

Fiz um card só para mostrar todos os dados que consegui obter do site fonte mas tenho de organizar a informação. Tambem pretendo ter outra vista agrupada por competição com possibilidade de definir a ordem das competições a aparecer no card. Partilho quando tiver o resultado final.

Aqui fica uma amostra:

1 Curtiu

Criei um novo tópico com a versão 2.

Qualquer dúvida, questionar no novo tópico.


Copyright © 2017-2021. Todos os direitos reservados
CPHA.pt - info@cpha.pt


FAQ | Termos de Serviço/Regras | Política de Privacidade