替换不在python中工作的字符

替换不在python中工作的字符,python,Python,我正在使用beautiful soup,我正在编写一个爬虫程序,其中包含以下代码: print soup.originalEncoding #self.addtoindex(page, soup) links=soup('a') for link in links: if('href' in dict(link.attrs)):

我正在使用beautiful soup,我正在编写一个爬虫程序,其中包含以下代码:

  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
链接['href'].replace('..','')
应该修复以../contact/orderform.aspx、../contact/requestconsult.aspx等形式出现的链接。但是,它不起作用。链接仍有前导“.”我缺少什么吗?

字符串。replace()返回带有替换值的字符串。它不会修改原始文件,因此请执行以下操作:

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

它不是就地替代品。您需要执行以下操作:

link['href'] = link['href'].replace('..', '')
例如:

a = "abc.."
print a.replace("..","")
'abc'
 print a
'abc..'
a = a.replace("..","")
print a
'abc'
string.replace()
返回替换字符的字符串副本,因为Python中的字符串是不可变的。试一试

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