2017-07-26 172 views
-2

我試圖從頁面的html文本中獲取最後5個字符,並使用它們替換URL中的最後5個字符,然後重試。我需要重複幾次。Python urllib模塊:遍歷URL

這就是我想出的。目前,它連續打印5次相同的URL。

import urllib.request 

prevurl = "http://www.pythonchallenge.com/pc/def/linkedlist.php?nothing=12345" 
for i in range(1,5): 
    with urllib.request.urlopen(prevurl) as url: 
     s = url.read() 
     prevurl.replace('[-5:]', 's[-5:]') 
    print(prevurl) 
+1

嗯...看看你要替換有什麼......你不應該有任何引號字符有 –

+0

似乎刪除引號使得語法無效 – tklein

+2

試試這個'prevurl = prevurl.replace( prevurl [: - 5],s [-5:])' – Himal

回答

0

我不明白爲什麼是負面的。我可以用一些建設性的批評來代替。鼓勵學習的好方法。

無論如何,我想我想通了。它需要一些額外的步驟,但按我想要的方式工作。

import urllib.request 

prevurl = "http://www.pythonchallenge.com/pc/def/linkedlist.php?nothing=12345" 
for i in range(1,400): 
    with urllib.request.urlopen(prevurl) as url: 
     s = url.read().decode("utf-8") 
     n1 = [] 
     u1 = [] 
     for i in s: 
      if i.isdigit(): 
       n1.append(i) 
       n2 = ''.join(n1) 
     for i in prevurl: 
      if i.isdigit(): 
       u1.append(i) 
       u2 = ''.join(u1) 
     if len(n2) != len(u2): 
      prevurl = prevurl.replace(prevurl[-(len(u2)):], n2) 
     else: 
      prevurl = prevurl.replace(prevurl[-(len(n2)):],n2) 

    print(prevurl)