yo estaba tratando de rascar algo de información de una página web a página, básicamente, esto es lo que hice:de error "Memoria insuficiente" con mecanizar
import mechanize
MechBrowser = mechanize.Browser()
Counter = 0
while Counter < 5000:
Response = MechBrowser.open("http://example.com/page" + str(Counter))
Html = Response.read()
Response.close()
OutputFile = open("Output.txt", "a")
OutputFile.write(Html)
OutputFile.close()
Counter = Counter + 1
Bueno, los códigos anteriores terminó tirar "Fuera de "Error de memoria" y en el administrador de tareas muestra que el script usó casi 1GB de memoria después de varias horas corriendo ... ¿cómo es que?
¿Alguien me diría qué salió mal?
Lo primero que trataría de descartar es que mechanize está perdiendo memoria, simplemente use 'urllib2.urlopen()' en su lugar. –
Al igual que una nota, es mucho más pitónico hacer '' para contador en rango (5000): ''. Y PEP8 recomienda low_case_with_underscores para nombres de variables, mientras que CamelCase está reservado para clases. Además, consulte '' with'' para escribir/leer en/desde archivos. –
(a) Este tipo de pregunta "¿Qué pasa con mi código?" Es mejor en la revisión de código (b) la reutilización variable ya que tal no es el problema (c) Obtenga información sobre el perfil de memoria. – Marcin