2011-08-26 53 views
7

工作我使用美丽的汤和我写一个履带式并在它下面的代码:替换字符不是蟒蛇

print soup.originalEncoding 
       #self.addtoindex(page, soup) 


       links=soup('a') 
      for link in links: 

       if('href' in dict(link.attrs)):     
        link['href'].replace('..', '') 
        url=urljoin(page, link['href']) 
        if url.find("'") != -1: 
         continue 
        url = url.split('?')[0] 
        url = url.split('#')[0] 
        if url[0:4] == 'http': 
         newpages.add(url) 
     pages = newpages 

link['href'].replace('..', '')应该修复出来的../contact链接/orderform.aspx,../contact/requestconsult.aspx等,但它不起作用。链接仍然有领先的“..”有什么我失踪?

回答

31

string.replace()返回替换值的字符串。它不会修改原来的,所以做这样的事情:

link['href'] = link['href'].replace("..", "") 
2

这不是一个就地更换。你需要做的:

link['href'] = link['href'].replace('..', '') 

例子:

a = "abc.." 
print a.replace("..","") 
'abc' 
print a 
'abc..' 
a = a.replace("..","") 
print a 
'abc' 
8

string.replace()返回与替换的字符字符串的副本,如Python中的字符串是不可改变的。尝试

s = link['href'].replace("..", '') 
url=urljoin(page, s)