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.
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.
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:
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”]:
Em vez de:
E se, como o @huguitosilva1, quiserem eliminar o “SPORTS” do “ELEVEN SPORTS X”, usem:
value_template: |
{{ value.split(" ") | map('trim') | map('replace', 'SPORTS', '') | list }}
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
Realmente, sem os pontos fica melhor.
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.
Ugh… Um último acréscimo.
{{ 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:
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.
Ok amigo. Ficaremos à espera
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:
Criei um novo tópico com a versão 2.
Qualquer dúvida, questionar no novo tópico.