python - 无法解决“第 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)
跑()
解决方案
推荐阅读
- javascript - 如何在 HTML 画布中仅将两个形状堆肥在一起而不影响其他形状
- apache-spark - 从动态帧转换为数据帧时的性能权衡是什么
- c# - Xamarin Forms 可绑定属性与普通属性
- c++11 - 错误:没有这样的文件或目录:“结构”clang:错误:没有输入文件
- audiomath - 使用 audiomath 安排多个音频事件的最佳方法是什么?
- reactjs - 如何将数据从状态传递到 Formik 的初始值?
- android - 执行 com.android.build.gradle.internal.tasks.Workers$ActionFacade 时发生故障
- javascript - 如何更改可从 json 文件编程的 javascript 中的全局变量内容?
- javascript - 谷歌云功能,如何设置keyFile路径避免报错?
- javascript - 在 Monaco Editor 中自动触发滚动