1

我正試圖移除刮取的數據中的空格。我提到了所有可用的解決方案,但似乎沒有任何工作。修剪python bs4中的空白處

這裏是我的代碼

from bs4 import BeautifulSoup 
import urllib2 
url="http://www.sfap.org/klsfaprep_search?page=38&type=1&strname=&loc=&op=Lancer%20la%20recherche&form_build_id=form-72a297de309517ed5a2c28af7ed15208&form_id=klsfaprep_search_form" 
page=urllib2.urlopen(url) 
soup = BeautifulSoup(page.read()) 
universities=soup.findAll('div',{'class':'field-item odd'}) 
for eachuniversity in universities: 
#print eachuniversity['href']+","+eachuniversity.string.encode('utf-8').strip() 
print eachuniversity.string if eachuniversity else '' 

我得到的輸出是

    EMSP 
None 
None 

        BP J5 

        98880 

        NOUMEA 

        Nouvelle-Calédonie 

        Intra établissement 

        Dr Chantal Barbe 

        [email protected] 

        00 687 25 66 66 (standard) 

        [email protected] 

        1078 (poste Dr Barbe) 

        Accueil stagiaire 
None 

        Régional 
None 

但我希望它是

EMSP,None,None, BP J5,98880,NOUMEA,Nouvelle-Calédonie,Intra établissement,Dr Chantal Barbe, [email protected], 00 687 25 66 66 (standard), [email protected], 1078 (poste Dr Barbe), Accueil stagiaire, None, Régional,None 

當我嘗試過其他SO答案我Nonetype屬性錯誤。

更新 我提高了我的腳本如下

from bs4 import BeautifulSoup 
import urllib2 
url="http://www.sfap.org/klsfaprep_search?page=38&type=1&strname=&loc=&op=Lancer%20la%20recherche&form_build_id=form-72a297de309517ed5a2c28af7ed15208&form_id=klsfaprep_search_form" 
page=urllib2.urlopen(url) 
soup = BeautifulSoup(page.read()) 
for eachuniversity in soup.findAll('div',{'class':'field-item odd'}): 
print ''.join(eachuniversity.findAll(text=True)).encode('utf-8').strip() 

這給了我下面的輸出

EMSP 
Nom de la structure:  
        EMASP 
Hôpital Gaston Bourret 
BP J5 
98880 
NOUMEA 
Nouvelle-Calédonie 
Intra établissement 
Dr Chantal Barbe 
[email protected] 
00 687 25 66 66 (standard) 
[email protected] 
1078 (poste Dr Barbe) 
Accueil stagiaire 
7h30 17h 
Régional 
ouverture équipe mobile depuis le 1 aout 2011 
Travail au quotidien avec le malade sur demande médecin référent 
Activités de formation intra et extra hospitalières sur toute la Nouvelle Calédonie auprès de professionnels de la santé, des auxiliaires de vie, des bénévoles, des prêtres.... 
Information auprès du grand public 
Travail de recherche : étude des problèmes ethniques; évaluation du ressenti des malades walisien et /ou kanak sur l' approche SP et propositions 

但我想這是與逗號分隔一行。

回答

1

要打印在同一行,只是在print聲明的末尾添加,

print ''.join(eachuniversity.findAll(text=True)).encode('utf-8').strip(),',', 

你可能想從文本刪除換行符。

print re.sub(r'\s+',' ',''.join(eachuniversity.findAll(text=True)).encode('utf-8')),',', 

它將用一個空格替換所有連續的空格字符,包括換行符。

+0

謝謝。有效。我從來不知道刪除空格會這麼簡單 –

+0

如何爲每一組數據獲得獨立行的輸出? –