我有一组7个文件包含非结构化数据,我试图解析成7个使用beautifulsoup获得的Python数据集。数据呈现的方式有很多,我正在努力通过正则表达式或其他解析包来找到合适的方法。从BeautifulSoup解析非结构化数据到结构化数据集
我粘贴的数据的一个片段到引擎收录:http://pastebin.com/sC9KbhbF
输出的数据是这样的(我只是用管分离领域的说明,我想这些作为输出单独的列):
Street | City | Postal Code
jln.sidomulyo i-vi | cepu | 58312
jln.sitimulyo | cepu | 58312
lr.sitimulyo i-vi | cepu | 58312
lr.sitimulyo ia-iiia | cepu | 58312
lr.sitimulyo ib-iiib | cepu | 58312
lr.sitimulyo ic | cepu | 58312
lr.sitimulyo iic | cepu | 58312
jln.sorogo | cepu | 58313
.....
jln.akhmad dakhlan kel.ciamis | ciamis | 46211
jln.akhmad dakhlan kel.linggasari | ciamis | 46216
.....
,使该模式这一硬:
1)把用逗号地址(例如LR sitimulyo I-VI,IA-IIIA在单独的行保持完整的街道名称
2)消除空白之后)。期间f或两个字母前缀(例如, LR。 sitimulyo与jln.sidomulyo)
3)嵌套地址落下街道名称(如jln.akhmad dakhlan kel.ciamis,jln.akhmad dakhlan kel.linggasari)
我已经尝试了一些不同的方法,但有甚至没有远距离接近,所以我没有包含这些片段。我用来获取数据的代码如下:
from bs4 import BeautifulSoup
import urllib2
import re
import bleach
import pandas
url_base = "http://www.indonesianewsonline.com/prangko/stamps"
url_seed = url_base + "/kodepos.htm"
content = urllib2.urlopen(url_seed).read()
soup = BeautifulSoup(content)
#print soup.prettify()
additional_links = []
for link in soup.findAll('a', href=True, text=re.compile('Cities*')):
additional_links.append(link['href'])
links_to_scrape = [url_base + "/" + s for s in additional_links]
data_files = []
for s in links_to_scrape:
a = BeautifulSoup(urllib2.urlopen(s).read())
data_files.append(a.findAll('pre'))