使用python regex从Craigslist rss feed中提取地址

时间:2011-09-08 04:58:20

标签: python regex rss craigslist

我正在试图解析一个craigslist rss feed以提取位置信息。

我使用feedparser将脚本解析为条目和条目描述。不幸的是,地址信息包含在描述部分的不规则标签中。

地址包含在如下所示的部分中:

<!-- CLTAG xstreet0=11832 se 318pl  -->
<!-- CLTAG xstreet1= -->
<!-- CLTAG city=auburn -->
<!-- CLTAG region=wa -->
11832 se 318pl 

Feedparser不喜欢那些CLTAGS。我试图用正则表达式捕获第一行看起来像这样:

addressStart = r'!-- CLTAG xstreet0='
addressEnd = r'-->'

prog = re.compile(addressStart(.*?)addressEnd)
result = prog.match(string)

......但那没用。我究竟做错了什么?这里是rss feed的链接我正在使用'http://seattle.craigslist.org/see/apa/index.rss'

非常感谢任何帮助!

2 个答案:

答案 0 :(得分:2)

这是一些无效的语法。除非引用字符串,否则不能连接/格式化字符串。尝试:

addressStart = r'!-- CLTAG xstreet0='
addressEnd = r'-->'

prog = re.compile(addressStart + r'(.*?)' + addressEnd)
result = prog.match(string)

答案 1 :(得分:2)

尝试使用search代替match(原因是该行以<开头,但您定义addressStart!开头。{ {1}}在字符串中的任意位置找到匹配项,而search仅在开头找到匹配项。或者您可以重新定义match以包含前导addressStart。)

<