我试图创建一个脚本来从一系列网址中提取图像和文本。网址来自同一网站,但有不同的参数。阅读Stackoverflow和我已经创建的其他网站"一个有效的脚本,但是当我尝试制作一个序列时,我遇到了问题。
我尝试使用而来制作循环并确定选项输入是否为" 1"脚本必须创建范围(00001,00002 ...),然后将其应用于URL(http://example.com/page/00001)。一切正常(甚至图像和文本提取)但它只从一个网址中提取。我试图制作一份清单或其他东西,但我还没有得到它。
以下代码可以工作,但只从一个提取:
def getUrl(opt, baseUrl):
out_folder = "/monedasWiki/monedas"
print "Instrucciones del script \n No te preocupes, no es complicado pero atiende a los pasos"
print "Introduce 1 para obtener los archivos del 00001 al 00010"
print "Introduce 2 para obtener los archivos del 00010 al 00099"
print "Introduce 3 para obtener los archivos del 00100 al 00999"
print "Introduce 4 para obtener los archivos del 01000 al 09999"
print "Introduce 5 para obtener los archivos del 10000 al 19999"
optSel = int(input(opt))
# i es el rango
# urlI es la transformacion de i en cadena
# baseUrl es el enlace al sitio web de Pliego
# url es la url completa con los parametros necesarios
while True:
if optSel == 1:
try:
for i in range(0,10):
r = str(0).zfill(4)
urlI = str(i)
print r + urlI # it's only to verify that works fine.
url = baseUrl + r + urlI
except ValueError:
print "Introduce el rango correcto"
continue
elif optSel == 2:
try:
for i in range(10,100):
r = str(0).zfill(3)
urlI = str(i)
print r + urlI # it's only to verify that works fine.
url = baseUrl + r + urlI
except ValueError:
print "Introduce el rango correcto"
continue
elif optSel < 0:
print "Valor inferior a 0"
continue
else:
print "Algo ha salido mal"
break
main(url, out_folder)
我只是把两个&#39; elif&#39;&#39;使代码最短。如果你能指出我错误的地方或地点,我该怎么做才能做出我想要的东西,我会感激不尽。
答案 0 :(得分:1)
取决于main()的作用,如下所示:
def getUrl(opt, baseUrl):
out_folder = "/monedasWiki/monedas"
print "Instrucciones del script \n No te preocupes, no es complicado pero atiende a los pasos"
print "Introduce 1 para obtener los archivos del 00001 al 00010"
print "Introduce 2 para obtener los archivos del 00010 al 00099"
print "Introduce 3 para obtener los archivos del 00100 al 00999"
print "Introduce 4 para obtener los archivos del 01000 al 09999"
print "Introduce 5 para obtener los archivos del 10000 al 19999"
optSel = int(input(opt))
# i es el rango
# urlI es la transformacion de i en cadena
# baseUrl es el enlace al sitio web de Pliego
# url es la url completa con los parametros necesarios
if optSel == 1:
try:
for i in range(0,10):
r = str(0).zfill(4)
urlI = str(i)
print r + urlI # it's only to verify that works fine.
url = baseUrl + r + urlI
main(url, out_folder)
except ValueError:
print "Introduce el rango correcto"
elif optSel == 2:
try:
for i in range(10,100):
r = str(0).zfill(3)
urlI = str(i)
print r + urlI # it's only to verify that works fine.
url = baseUrl + r + urlI
main(url, out_folder)
except ValueError:
print "Introduce el rango correcto"
elif optSel < 0:
print "Valor inferior a 0"
else:
print "Algo ha salido mal"
答案 1 :(得分:0)
您必须在for
循环内移动以下行:
main(url, out_folder)
就是这样:
while True:
if optSel == 1:
try:
for i in range(0,10):
r = str(0).zfill(4)
urlI = str(i)
print r + urlI
url = baseUrl + r + urlI
main(url, out_folder)
except ValueError:
print "Introduce el rango correcto"
continue