Error de atributo informado cuando se ejecuta en Python: el objeto 'NoneType' no tiene el atributo 'grupo'
importar?re
importar?sys
importar?time
importar?solicitudes
de?lxml?import?etree
import?importlib
importlib.reload(sys)
#Definir un rastreador
class?spider(object):
def?__init__(self):
print('Empezando a rastrear contenido...')
#getsource se utiliza para obtener el código fuente de la página
def?getsource(self, url):
html?=?requests.get(url)
return html.text
#changepage se utiliza para generar enlaces con diferentes números de página
def?changepage(self, url, total_page):
if? re.search( 'index_(\d )', url, re.S):
página_ahora?=?int( re.search('index_(\d)', url, re.S) .group(1 ))#modificable
else:
now_page?=?0
page_group?=?[]
para ?i?in ?range(now_page,total_page 1):
link?=?re.sub('index_\d ','index_s'i,url,re.S)#modificable
page_group.append (enlace)
return?page_group
#getpic se utiliza para capturar imágenes de páginas web
def?getpic(self, source ):
selector?=?etree.HTML(fuente)
pic_url?=?selector.xpath('//ul[@class="ali"]/li/div/a/img /@src') #modificable
return?pic_url
#savepic se utiliza para guardar los resultados en la carpeta de imágenes
def?savepic(self, pic_url ):
picname=re.findall('(\d )', enlace, re.S)#modificable
picnamestr?=?''
'' .join(picname )
i=0
para?cada?en?pic_url:
print('ahora?descargando:{}'. formato(cada uno))?
pic?=?request.get(cada uno)
fp?=?open('pic\' picnamestr? '-' str(i)? '.jpg',?
wb')
fp.write(pic.content)
fp.close()
i?=?1
# Métodos de la clase de colección ppic
def?ppic(self,?link):
print('Página de procesamiento: {}'.format(link))
html?=?picspider.getsource(enlace)
pic_url?=?picspider.getpic(html)
picspider.savepic(pic_url )
si? __main__':
inicio?=?time.time()
url?=?/' #modificable
picspider?=?spider() p>
all_links?=?picspider.changepage(url,3)?#modificable
para?link?in?all_links:
picspider.ppic(enlace) p>
p>
end?=?time.time()
print('tiempo transcurrido: {}'.format(inicio-fin))
La calidad del código es muy normal. Ni siquiera me molesté en mirar en detalle, solo agregué una declaración if.
Se recomienda echar un vistazo a la clase de reptiles del profesor Song Tian, el nivel será mayor.