Skip to content

Instantly share code, notes, and snippets.

@walison17
Last active June 6, 2017 16:19
Show Gist options
  • Select an option

  • Save walison17/c4eabc5930d3350bd12ba3d2b6ad383a to your computer and use it in GitHub Desktop.

Select an option

Save walison17/c4eabc5930d3350bd12ba3d2b6ad383a to your computer and use it in GitHub Desktop.
def pesquisar(self, parametro: str, por_pagina=24, idioma='pt-br', tipo='todos',
exibir_sugestoes=True):
contador = 0
pagina = self._pagina(por_pagina)
urls = [
f'{self.URL}/legenda/busca/{parametro}/1/-/{p}/-' for p in range(pagina + 1)
]
reqs = [requests.get(url=u, headers=self.HEADERS) for u in urls]
def _definir_limite(contador: int, por_pagina: int):
if por_pagina > self.QUANT_LEGENDAS_POR_PAGINA:
return por_pagina - contador
return self.QUANT_LEGENDAS_POR_PAGINA
for r in reqs:
if r.status_code == 200:
s = self._soup(r.text)
resultados_html = s.find_all('a', limit=_definir_limite(contador, por_pagina),
href=re.compile(r'/download/[\d\w_.]*'))
for res in resultados_html:
titulo = res.find_previous('p').text
link = f'{self.URL}{res["href"]}'
cod = re.search(r'download\/(?P<cod>[\d\w]*)', link).group('cod')
legenda = Legenda(cod, titulo, link)
yield legenda
contador += 1
def _pagina(self, por_pagina: int):
if por_pagina == self.QUANT_LEGENDAS_POR_PAGINA:
return 0
return int((por_pagina / self.QUANT_LEGENDAS_POR_PAGINA))
Sign up for free to join this conversation on GitHub. Already have an account? Sign in to comment