解析:如何删除Unicode字符?

时间:2015-07-22 16:40:20

标签: python web-scraping beautifulsoup

我写了一些代码来抓取此网页http://www.virginiaequestrian.com/main.cfm?action=greenpages&sub=view&ID=10478

上的中断元素之间的文字

我认为我走在正确的轨道上,但现在我得到了一些不好的价值观 以下是我的结果 [u! 2133 Craigs Store Road',u' Afton,\ r \ n \ t \ t \ t \ t \ t \ t \ t \ t \ t \ t \ t \ t \ t \ t \ t才会',u'联系人:&# 39;,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

2 个答案:

答案 0 :(得分:0)

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'网站: ',你'电话:434-882-3150',你' '] 但至少人物已经消失了

答案 1 :(得分:0)

您可以使用str类型具有的替换内置函数。

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

这样您可以替换\n\t\r并将其替换为