1

我正在尝试删除抓取数据中的空格。我参考了所有可用的解决方案,但似乎没有任何效果。

这是我的代码

    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

                    c.barbe@cht.nc

                    00 687 25 66 66 (standard)

                    emasp@cht.nc

                    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, c.barbe@cht.nc, 00 687 25 66 66 (standard), emasp@cht.nc, 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
c.barbe@cht.nc
00 687 25 66 66 (standard)
emasp@cht.nc
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

但我希望这与逗号分隔的单行。

4

1 回答 1

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')),',',

它将用一个空格替换所有连续的空白字符,包括换行符。

于 2013-10-19T05:05:56.213 回答