58同城其分类信息的信息有几大类,然后大类下面有一些小类信息,其中的html代码如下:
则可以使用以下的正则表达式进行信息的提取,并将一类的名称和下面的小类进行分组获取:
[\S|\s]*?([\s|\S]*? (.*))[\S|\s]*?([\S|\s]*?)[\S|\s]*?
接着对下面的小类进行正则表达式提取,得到的是一系列的<a ..>..</a>:
接着对<a ...>..</a>里面的小类的名称进行提取:
([\s|\S]*?)
最后输出就得到所有的分类信息,运行结果如下:
家政服务 {[搬家居民搬家小型搬家空调移机长途搬家搬运],[保姆/月嫂钟点工保姆陪护月嫂育婴师/育儿嫂养老院],...}
详细的代码如下:
# -*- coding: utf-8 -*- import urllib.requestimport redef output(file,content): with open(file,'a') as output_: output_.write(content) output_.close()def parse(text,pattern): p=re.compile(pattern,re.IGNORECASE) return p.finditer(text)def segment_parse(segment): m=parse(segment,'
PS:日常记录,自己写的正则表达式实在是太烂,仅仅是实现了功能。