Skip to content
New issue

Have a question about this project? Sign up for a free GitHub account to open an issue and contact its maintainers and the community.

By clicking “Sign up for GitHub”, you agree to our terms of service and privacy statement. We’ll occasionally send you account related emails.

Already on GitHub? Sign in to your account

Alguns filmes não estão sendo captados pelo scrapper #47

Open
guites opened this issue Apr 12, 2024 · 4 comments
Open

Alguns filmes não estão sendo captados pelo scrapper #47

guites opened this issue Apr 12, 2024 · 4 comments
Assignees
Labels
bug Something isn't working sala-redencao Relacionado a scrapping do site da Sala da Redenção (UFRGS)

Comments

@guites
Copy link
Collaborator

guites commented Apr 12, 2024

Por exemplo na página https://www.ufrgs.br/difusaocultural/cinema-da-ufrgs-apresenta-mostra-para-descomemorar-os-60-anos-do-golpe-militar/ o bloco

VERDES ANOS
(dir. Giba Assis Brasil, Carlos Gerbase | Brasil | 1984 | 91 min)
Na década de 70, em meio à repressão política e à ideologia do “milagre brasileiro”, um grupo de adolescentes vive suas >preocupações cotidianas: futuro, noites regadas a dança, brigas de namoro, conflitos com os pais. Durante 3 dias eles vivem seus >verdes anos, um pouco mais que um sonho.
12 de abril | sexta-feira | 19h + conversa com Giba Assis Brasil, Carlos Gerbase e Nilo Piana de Castro

não foi raspado corretamento quando o dia atual era 12/04.

O ideal é corrigir o comportamento e criar um teste para esse exemplo específico em /tests/scrapers/test_sala_redencao.py .

@guites guites added bug Something isn't working sala-redencao Relacionado a scrapping do site da Sala da Redenção (UFRGS) labels Apr 12, 2024
@guites
Copy link
Collaborator Author

guites commented Apr 19, 2024

https://www.ufrgs.br/difusaocultural/sala-redencao-e-instituto-confucio-apresentam-mostra-de-cinema-chines/

os blocos

VOLTANDO PARA CASA
(dir. Zhang Yimou | China | 2014 | 111 min)
O prisioneiro político Lu Yanshi é libertado ao fim da Revolução Cultural. Quando volta para casa, ele descobre que sua >esposa sofre de amnésia; não o reconhece e ainda aguarda o retorno de seu marido sem perceber que ele está ao seu lado.
16 de abril | terça-feira | 19h + Conversa com o professor José Miguel Quedi Martins (Relações Internacionais-UFRGS)
19 de abril | sexta-feira | 19h
24 de abril | quarta-feira | 16h

AS MONTANHAS SE SEPARAM
(dir. Jia Zhangke | China | 2015 | 131 min)
Uma história em três partes que se inicia no fim da década de 1990 e acompanha Tao, bela jovem da província de Shanxi que se vê dividida entre dois pretendentes, seus amigos de infância Zhang e Liangzi.
18 de abril | quinta-feira | 19h + Conversa com o professor Nilo André Piana de Castro (Colégio de Aplicação-UFRGS)
19 de abril | sexta-feira | 16h
23 de abril | terça-feira | 16h
24 de abril | quarta-feira | 19h
29 de abril | segunda-feira | 16h

não foram raspados corretamente quando o dia era 19 de abril

@guites
Copy link
Collaborator Author

guites commented Apr 22, 2024

Reparei também que o scrapper não acessa links presentes apenas nas notícias. Filmes que vão passar uma única vez às vezes só aparecem ali, então estamos perdendo de indexar várias sessões.

Na imagem abaixo, o bot não acessa o link da notícia "Sala Redenção celebra seu aniversário com duas sessões especiais".

Captura de Tela 2024-04-22 às 09 54 10

@JeanJantara
Copy link
Contributor

Pode atribuir para eu dar uma olhada.

@guites
Copy link
Collaborator Author

guites commented Sep 22, 2024

O fluxo de scrapping pra sala da redenção é baseado na classe SalaRedencao no arquivo scrapers/sala_redencao.py.

Quando a gente dispara o scrappers, o que é feito é a instanciação da classe e chamada do médoto get_daily_features_json.

    # Sala-redenção
    if "redencao" in request.form:
        feature = {
            "url": "https://www.ufrgs.br/difusaocultural/salaredencao/",
            "cinema": "Sala Redenção",
            "slug": "sala-redencao",
        }
        redencao = SalaRedencao()
        feature["features"] = redencao.get_daily_features_json()
        features.append(feature)

o fluxo de chamadas do get_daily_features_json é mais ou menos assim

(a URL da sala da redenção é https://www.ufrgs.br/difusaocultural/salaredencao/)

  1. Acessa a URL da sala redenção
  2. Pra cada item dentro de "Programação", pega o link do evento (o equivante a clicar no evento e ir em "saiba mais")
    • ex-1
  3. Para cada link coletado:
    • Acessar o link
    • Carregar o HTML da página com o BeautifulSoup
    • Usar uma série expressões regulares pra tentar encontrar blocos no formato que o site costuma postar os horários de filmes.
    • Primeiro eu tento a função _parse_blog_post_by_html,
    • Depois, _parse_blog_post_alternate_format
    • Por último, _parse_blog_post_with_regex
  4. Se algum dos formatos bater, eu pego os dados do filme e vejo se vai ter alguma sessão no dia atual.

Exemplo de como é o HTML dos blocos com os horários:

Captura de Tela 2024-09-22 às 18 08 32

O problema

Se tu olhar a página https://www.ufrgs.br/difusaocultural/mostra-realizada-na-sala-redencao-celebra-os-200-anos-da-imigracao-alema-no-brasil/ por exemplo, a forma que as tags estão não tá sendo pego por nenhum dos meus regexes.

Pra depurar, tu pode usar o script ./cinemaempoa.py pra mudar a data de scrapping. Por exemplo, a gente sabe que dia 19/09 teve uma sessão do filme Amor, marco alemão e morte (ver link acima).

Então tu pode rodar o script assim:

./cinemaempoa.py --rooms sala-redencao --date "2024-09-19"

E dá pra confirmar que "Não tá funcionando" pq não tá retornando nada:

[
  {
    "url": "https://www.ufrgs.br/difusaocultural/salaredencao/",
    "cinema": "Sala Redenção",
    "slug": "sala-redencao",
    "features": []
  }
]

Deveria ter as informações desse filme na chave features.

Exemplo do regex e do texto que tá sendo passado nele (que era pra funcionar): https://regex101.com/r/Y6NYZc/1 .

Eu acho que nas novas postagens não tá vindo esse bloco onde ficaria o gênero do filme:

Captura de Tela 2024-09-22 às 18 40 24

Possível solução

Deixar o bloco opcional? Ou talvez criar uma segunda função que tenta rodar o regex sem o bloco... o foda é que daí pra cada pequena alteração que rolar no HTML, vamos precisar de uma função nova

Sign up for free to join this conversation on GitHub. Already have an account? Sign in to comment
Labels
bug Something isn't working sala-redencao Relacionado a scrapping do site da Sala da Redenção (UFRGS)
Projects
None yet
Development

No branches or pull requests

2 participants