我的迴圈一部分是這樣
for ii in page.select('a'),illustration.select("a"):
for i in ii:
但是有的時候是沒有illustration這個參數的
有沒有用if或其他方法來避開這個迴圈做出新的迴圈
比如
if illustration:
for ii in page.select('a'),illustration.select("a"):
for i in ii:
else:
for i in page.select('a'):
然後後面是迴圈內容這樣
不過我這方法不行
有甚麼方法嗎
你原本的迴圈也不會跑吧...根本就不合語法啊。
你可以把
page.select('a')
illustration.select("a")
先合併起來再做。
看起來是類似這樣,要在一開始先判斷能不能取到illustration.select
if illustration.select("a"):
for ii in page.select('a'),illustration.select("a"):
for i in ii:
else:
for i in page.select('a'):
我就是這樣想的
但是這樣的迴圈根本不會跑
不介意的話看你要不要貼完整一點的程式碼
page=soup.select('#chapterList')[0]
illustration=soup.select("#illustration")[0]
for ii in page.select('a'),illustration.select("a"):
for i in ii:
attempts=0
while (attempts<3):
try:
url=i['href']
soup=url1(url)
html=soup.select('.mt-3')[0]
html=html.prettify()
Chapter=i.text
print(Chapter,time.strftime("%Y-%m-%d %H:%M:%S", time.localtime()))
attempts=5
except Exception as e:
attempts+=1
print(e,('超時 %d 次 ' % attempts))
就這樣
很平常的迴圈
拉出來寫個function讓邏輯處理更清楚如何?
def a(b):
if b:
for ii in b.select("a"):
for i in ii:
pass
a(illustration)
a(page)