2017-01-01 34 views
0

我有一個網頁我正在刮和解析,使用美麗的湯。在這個網頁上有幾個參考其他來源。它們看起來像這個有很多:`Python:修改<a>元素的內容

Shakespeare wrote good, such as in <a href="link_to_source">Romeo and Juliet, IV:ii</a>. 

我想吃點什麼是:

Shakespeare wrote good, such as in (Romeo and Juliet, IV:ii). 

裸記住,這是一個很長的網頁,有許多行,我需要結合所有這些,所以只需修改一個「a」標籤就不適合我,我需要修改頁面上的所有「a」標籤。

這是我已經嘗試過:

piska_ps = url_to_soup('https://he.wikisource.org'+a['href']).find_all('p') 
    p_box = [] 
    for p in piska_ps: 
     if p.a: 
      for a_link in p.a: 
       a_link.string = "("+a_link.string+")" 
+0

我試圖在網頁上並用標籤圈,底層tag.string應用re.sub,但遇到沒有成功... –

+0

添加您所使用的代碼(特別是部分使用beautifulsoup) – Dekel

+0

如果PA : for a_link in pa: a_link.string =「(」+ a_link.string +「)」 –

回答

0

您可以使用replace_with更換標籤:

piska_ps = url_to_soup('https://he.wikisource.org'+a['href']).find_all('p') 
for p in piska_ps: 
    for a in p.find_all('a'): 
     a.replace_with("(" + a.string + ")") 
0

首先,p.a等於p.find('a'),它會返回一個標籤,你無法迭代它。

piska_ps = url_to_soup('https://he.wikisource.org'+a['href']).find_all('p') 
p_box = [] 
    for p in piska_ps: 
     if p.a: 
      p.a.string = "("+p.a.string+")"