解析:如何去掉Unicode字符?

2024-09-28 20:55:46 发布

您现在位置:Python中文网/ 问答频道 /正文

我写了一些代码来获取这个网页上break元素之间的文本http://www.virginiaequestrian.com/main.cfm?action=greenpages&sub=view&ID=10478

我认为我走在正确的轨道上,但现在我得到了一些不好的价值观 下面是我的结果 [u'2133 Craigs Store Road',u'Afton,\r\n\t\tVA\xa0\r\n\t\t22920',u'联系人:',u'电子邮件地址:',u'网站:',u'电话:434-882-3150',u'']

我需要弄清楚如何从结果值中去掉unicode。有人能帮忙吗?你知道吗

r=requests.get('http://www.virginiaequestrian.com/main.cfm?action=greenpages&sub=view&ID=10478')
soup=BeautifulSoup(r.content,'lxml')
tbl=soup.findAll('table')[2]

Contact=tbl.findAll('p')[0]

list=[]
for br in Contact.findAll('br'):
    next = br.nextSibling
    text=next.strip()
    list.append(text)
print list

Tags: brcomviewidhttpmainwwwaction
2条回答

可以使用str类型具有的replace内置函数。你知道吗

text = next.strip().replace("\n", "").replace("\t", "").replace("\r", "")

这样您就可以替换\n\t\r,而不使用任何内容来替换它们

from bs4 import BeautifulSoup, NavigableString, Tag
import requests
import re

r=requests.get('http://www.virginiaequestrian.com/main.cfm?action=greenpages&sub=view&ID=10478')
soup=BeautifulSoup(r.content,'lxml')
tbl=soup.findAll('table')[2]

Contact=tbl.findAll('p')[0]

list=[]
for br in Contact.findAll('br'):
    next = br.nextSibling
    regex = re.compile(r'[\n\r\t\xa0]')
    text=next.strip()
    text=regex.sub(' ', next)
    list.append(text)
print list          

我仔细研究了一下,发现我可以用正则表达式来计算这些值,但我仍然有一个关于间距的问题 [u'2133 Craigs Store Road',u'Afton,VA 22920',u'联系人:',u'电子邮件地址:',u'网站:',u'电话:434-882-3150',u''] 但至少那些角色已经消失了

相关问题 更多 >