,python,tesseract"/>

首页 > 解决方案 > 无法解决“第 93 行,在run() 和第 89 行,在 run anuncios.extend(anuncios_da_pagina) TypeError: 'NoneType' object not iterable"

问题描述

从转换器导入 gif_to_png、image_to_text 从 file_helper 导入 dictionary_list_to_csv 从 util 导入 get_site_html、get_bsobj_from

def get_anuncio(url_anuncio): print("Buscando" + url_anuncio) anuncio = {"url": url_anuncio}

html_anuncio = get_site_html(url_anuncio)
if html_anuncio is None:
    return None

obj_anuncio = get_bsobj_from(html_anuncio)
if obj_anuncio is None:
    return None

span_visible_phone = obj_anuncio.find(id="visible_phone")
span_codigo_do_anuncio = obj_anuncio.find("span", {"class": "sc-gqjmRU"})
codigo_do_anuncio = span_codigo_do_anuncio.get_text()
#print("Código do anúncio: " + codigo_do_anuncio)
anuncio["codigo"] = codigo_do_anuncio
phone = "Desconhecido"
if (span_visible_phone):
    imgurl = span_visible_phone.img['src']

    img = get_site_html(imgurl)
    if img is None:
        return None

    gif_name = "images/" + codigo_do_anuncio + '.gif'
    localFile = open(gif_name, 'wb')
    localFile.write(img.read())
    localFile.close()
    gif_to_png(gif_name)
    phone = image_to_text(gif_name + '.png')

anuncio["phone"] = phone
return anuncio

def get_anuncios(url): html = get_site_html(url) 如果 html 为无:返回无

bsObj = get_bsobj_from(html)
if bsObj is None:
    return None

try:
    links_for_anuncios = bsObj.findAll("a", {"class": "OLXad-list-link"})
except AttributeError as e:
    print("Erro ao obter lista de anúncios")
    print(e)
    return None

anuncios = []
for link_anuncio in links_for_anuncios:
    anuncio = get_anuncio(link_anuncio['href'])
    anuncios.append(anuncio)
    print(anuncio)
    print(" ")
return anuncios

def run(): url = ""

while url == "":
    url = input("Informe a URL desejada: ")

numero_de_paginas = input("Informe a quantidade de páginas: ")

if numero_de_paginas == "":
    numero_de_paginas = 1
else:
    numero_de_paginas = int(numero_de_paginas)

anuncios = []

for page in range(numero_de_paginas):
    pagina_atual = page + 1
    print("Obtendo anuncios da pagina " + str(pagina_atual))

    url_formatada = url
    if pagina_atual > 1:
        url_formatada += "&o=" + str(pagina_atual)

    anuncios_da_pagina = get_anuncios(url_formatada)
    anuncios.extend(anuncios_da_pagina)

dictionary_list_to_csv(anuncios)

跑()

标签: pythontesseract

解决方案


推荐阅读