Python – guardar solicitudes o el objeto BeautifulSoup localmente

Tengo un código que es bastante largo, por lo que tarda mucho tiempo en ejecutarse. Quiero simplemente guardar el objeto de solicitudes (en este caso, “nombre”) o el objeto BeautifulSoup (en este caso, “sopa”) localmente para que la próxima vez pueda ahorrar tiempo. Aquí está el código:

from bs4 import BeautifulSoup import requests url = 'SOMEURL' name = requests.get(url) soup = BeautifulSoup(name.content) 

Ya que name.content es solo HTML , puede name.content en un archivo y leerlo más tarde.

Por lo general, el cuello de botella no es el análisis, sino la latencia de la red al realizar solicitudes.

 from bs4 import BeautifulSoup import requests url = 'https://google.com' name = requests.get(url) with open("/tmp/A.html", "w") as f: f.write(name.content) # read it back in with open("/tmp/A.html") as f: soup = BeautifulSoup(f) # do something with soup 

Aquí hay una evidencia anecdótica del hecho de que el cuello de botella está en la red.

 from bs4 import BeautifulSoup import requests import time url = 'https://google.com' t1 = time.clock(); name = requests.get(url) t2 = time.clock(); soup = BeautifulSoup(name.content) t3 = time.clock(); print t2 - t1, t3 - t2 

Salida, desde la ejecución en Thinkpad X1 Carbon, con una red de campus rápida.

 0.11 0.02