Home > database >  unable to call a defined function, invalid syntax on a line i have used before in the code
unable to call a defined function, invalid syntax on a line i have used before in the code

Time:03-10

@app.get("/drogaraia")
def scraperaia(urlbase="https://www.drogaraia.com.br/medicamentos",maximodepaginas=10):
            
    listaprincipal= []
    pagina=2
    contador=1

    while pagina<maximodepaginas:
        testeurl= ((urlbase) ".html?p=" str(pagina))
        page = requests.get(testeurl)
        results= BeautifulSoup(page.content,"html.parser")
        remedios = results.find_all("div",class_="container")
        
        for remedio in remedios:
            try:
                link=(remedio.find("a", class_="show-hover"))['href'] 
                preco=remedio.find(class_="price").getText().strip() 
                titulo=(remedio.find("a", class_="show-hover")).getText()
                categoria=urlbase.rsplit('/',1)[-1]
                listaremedio=[{'link':link,'preco':preco,'titulo':titulo,'categoria':categoria}]
                listaprincipal.extend(listaremedio)
            
            except:
                pass
                     
            contador=contador 1
            
        pagina=pagina 1
    return(listaprincipal)


@app.get("/drogaraia/medicamentos/monitores-e-testes/teste-de-controle-glicemicos")
scraperaia(urlbase="https://www.drogaraia.com.br/medicamentos/monitores-e-testes/teste-de-controle-glicemicos",maximodepaginas=10)

#error message goes here: scraperaia(urlbase="https://www.drogaraia.com.br/medicamentos/monitores-e-testes/teste-de-controle-glicemicos",maximodepaginas=10) ^^^^^^^^^^ SyntaxError: invalid syntax

i dont see how it can be wrong syntax. i have tried not assigning the variables inside the scraperaia() function, like so:

urlbase="https://www.drogaraia.com.br/medicamentos/monitores-e-testes/teste-de-controle-glicemicos"
maximodepaginas=10
scraperaia(urlbase,maximodepaginas)

and it still doesnt work.

CodePudding user response:

The last two lines of your provided code are wrong. You need to use def to define a function.

CodePudding user response:

Have a look at the example below:

@app.get('/test1')
def function_1(urlbase="some-url",maximodepaginas=10):
    return {"urlbase":urlbase, "maximodepaginas":maximodepaginas}
    
@app.get('/test2')
def function_2():
   res = function_1(urlbase="some-other-url",maximodepaginas=5)
   return res
  • Related