Hola, soy nuevo en el foro y vengo a aprender y por qué no, ayudar a otros.
Resulta que estoy parseando una web con la librería Beautiful Soup, pero no quiero que revise sólo una url, sino varias. Pero tampoco quiero añadir una lista de urls y que las revise, sino que haga un tipo de loop y revise varias páginas.
En resumen, tengo una página del estilo:
http://sitio.com/?cat=200&page=1 (que sería la primera página), pero quiero parsear también las siguientes páginas (2,3,...,X). Entonces, no quiero agregar una lista de:
http://sitio.com/?cat=200&page=1http://sitio.com/?cat=200&page=2http://sitio.com/?cat=200&page=3...
ETC
Sino que hacer un loop (while) y que vaya variando el id de la página.
El código que utilizo para parsear una sola página es:
import urllib2
from BeautifulSoup import BeautifulSoup
url = 'http://sitio.com/?cat=200&paged=1'
data = urllib2.urlopen(url).read()
soup = BeautifulSoup(data)
xa = soup.findAll('a', href=True)
for web in xa:
print web['href']
Para parsear dos (páginas) lo que hago es:
url = 'http://sitio.com/?cat=200&paged=1'
data = urllib2.urlopen(url).read()
soup = BeautifulSoup(data)
xa = soup.findAll('a', href=True)
url = 'http://sitio.com/?cat=200&paged=2'
data = urllib2.urlopen(url).read()
soup = BeautifulSoup(data)
xb = soup.findAll('a', href=True)
for web in xa:
print web['href']
for web in xb:
print web['href']
Pero la idea no es ir agregando tanta página manualmente. Sino que automáticamente avance por las páginas y al terminar, diga algo así como finalizado. Se agradece una ayuda!!