求助用匹配网页中特定的内容

青城孤影 2012-03-15 05:53:11
我想提取其中不派送范围后边的地名

就是
"<strong>●城东区</strong>:朱家庄,互宁路,付家寨,大园山,村组。<br /><br /><strong>●城中区</strong>:总寨镇,南西山,村组。<br /><br /><strong>●城西区</strong>:彭家寨,海湖新区,村组。<br /><br /><strong>●城北区</strong>:大堡子镇,拥军路以西,(柴达木路495号以上),二十里镇青海大学以北,新号251号以上,老号75号以上。<br /><br /><strong>●湟中县。</strong><br /><br />【更新时间:2011-6-1 11:01_D】"

这样的内容,求高手指教.
<table width="100%" border="0" cellpadding="0" cellspacing="1" align="center">
<tr>
<td class="table_title" width="150">公司编号</td>
<td class="table_content">810000</td>
</tr>
<tr>
<td class="table_title">公司名称</td>
<td class="table_content">青海西宁公司</td>
</tr>
<tr>
<td class="table_title">所在省市</td>
<td class="table_content"><a href="fuwuwangdian_list.php?id=860971">青海省</a>,<a href="fuwuwangdian_list.php?shi=0971">西宁市</a></td>
</tr>
<tr>
<td class="table_title">联系电话</td>
<td class="table_content">0971-6251064, 6167067</td>
</tr>
<tr>
<td class="table_title">负责人</td>
<td class="table_content">张进明</td>
</tr>
<tr>
<td class="table_title">地址</td>
<td class="table_content">西宁市城西区兴海路79号</td>
</tr>
<tr>
<td class="table_title">派送范围</td>
<td class="table_content"><strong>●城东区</strong>:东关大街,大众街,八一西路,八一东路,八一中路,经济开发区,互助东路,互助中路,互助西路,建国路,建国南路,七一路(1-311号,2-294号),祁连路(1-137号,2-800号),北小街,南小街,夏都大街,五一路,花园北街,花园南街,共和路,共和南路。<br /><br /><strong>●城中区</strong>:东大街,西大街,北大街,南大街,南山路,滨河路,七一路,长江路,南川东路,城南新区。<br /><br /><strong>●城西区</strong>:胜利路,五四大街,西关大街,昆仑路,南川西路,五四西路,海晏路,新宁路,西川南路(双号到48号,单号到61号)。<br /><br /><strong>●城北区</strong>:小桥大街,朝阳西路,朝阳东路,祁连路,柴达木路(1-493号),生物园区,二十里铺,青海大学。<br /><br /><strong>●大通县</strong>:详情请点击<a href="http://222.73.105.210/www/fuwuwangdian_data.php?id=810004" target="_blank"><u><strong>西宁公司大通县分部810004</strong></u></a><br /><br /><strong>●平安县</strong>:详情请点击<a href="http://222.73.105.210/www/fuwuwangdian_data.php?id=810600" target="_blank"><u><strong>西宁公司平安县分部810600</strong></u><br /><br /></a><strong>●民和县</strong>:详情请点击<a href="http://222.73.105.210/www/fuwuwangdian_data.php?id=810005" target="_blank"><u><strong>西宁公司民和县分部81000<br /><br /></strong></u></a><strong>●湟源县</strong>:详情请点击<a href="http://222.73.105.210/www/fuwuwangdian_data.php?id=810005" target="_blank"><u><strong>西宁公司湟源县分部810005<br /><br /></strong></u></a>【更新时间:2012-2-10 11:05_D】</td>
</tr>
<tr>
<td class="table_title">不派送范围</td>
<td class="table_content"><strong>●城东区</strong>:朱家庄,互宁路,付家寨,大园山,村组。<br /><br /><strong>●城中区</strong>:总寨镇,南西山,村组。<br /><br /><strong>●城西区</strong>:彭家寨,海湖新区,村组。<br /><br /><strong>●城北区</strong>:大堡子镇,拥军路以西,(柴达木路495号以上),二十里镇青海大学以北,新号251号以上,老号75号以上。<br /><br /><strong>●湟中县。</strong><br /><br />【更新时间:2011-6-1 11:01_D】</td>
</tr>
<tr>
<td class="table_title">所开通的增值业务</td>
<td class="table_content"></td>
</tr>
<tr>
<td class="table_title">门店展示</td>
<td class="table_content">
</td>
</tr>
</table>
...全文
75 8 打赏 收藏 转发到动态 举报
写回复
用AI写文章
8 条回复
切换为时间正序
请发表友善的回复…
发表回复
Rlay_2 2012-03-16
  • 打赏
  • 举报
回复
你这个字符串里有换行符, 需要用\s 来匹配..

[Quote=引用 4 楼 walkingfy 的回复:]
引用 2 楼 rlay_2 的回复:
得到的结果就是:

HTML code


<td class="table_content"><strong>●城东区</strong>:朱家庄,互宁路,付家寨,大园山,村组。<br /><br /><strong>●城中区</strong>:总寨镇,南西山,村组。<br /><br /><strong>●城西区</strong>:彭家寨,海湖新……
[/Quote]
Rlay_2 2012-03-16
  • 打赏
  • 举报
回复

import re
strvar = """
<td class="table_title">不派送范围</td>
<td class="table_content">东:热电厂,联邦制药,八一工业园区,东开发区<br />南:铁贸,农资公司仓库<br />西:胜利路以西属<u>巴彦淖尔公司欧式街分部</u>派送<br />北:屠宰场,大兰庙桥以北</td>
"""

patt = '不派送范围</td>\s<td class="table_content">(.*)</td>'


print re.search(patt,strvar).group()
Rlay_2 2012-03-16
  • 打赏
  • 举报
回复
不管你在哪里进行,反正你能取到html的内容然后存起来,按照我上面给的代码解析就可以了嘛...

[Quote=引用 3 楼 walkingfy 的回复:]
这样恐怕不行啊,我是在C#winfrom中匹配不是在web中进行的.
[/Quote]
青城孤影 2012-03-15
  • 打赏
  • 举报
回复
自己顶一下
青城孤影 2012-03-15
  • 打赏
  • 举报
回复
[Quote=引用 2 楼 rlay_2 的回复:]
得到的结果就是:

HTML code


<td class="table_content"><strong>●城东区</strong>:朱家庄,互宁路,付家寨,大园山,村组。<br /><br /><strong>●城中区</strong>:总寨镇,南西山,村组。<br /><br /><strong>●城西区</strong>:彭家寨,海湖新区,村组。<br /><br /><st……
[/Quote]

<td class="table_title">不派送范围</td>
<td class="table_content">东:热电厂,联邦制药,八一工业园区,东开发区<br />南:铁贸,农资公司仓库<br />西:胜利路以西属<u>巴彦淖尔公司欧式街分部</u>派送<br />北:屠宰场,大兰庙桥以北</td>

这个字符串我用这个正则匹配不到啊请帮忙找找错误啊 "不派送范围</td>(?<text>(?:(?!</?a\d).)*)</td>"
青城孤影 2012-03-15
  • 打赏
  • 举报
回复
这样恐怕不行啊,我是在C#winfrom中匹配不是在web中进行的.
Rlay_2 2012-03-15
  • 打赏
  • 举报
回复
得到的结果就是:

<td class="table_content"><strong>●城东区</strong>:朱家庄,互宁路,付家寨,大园山,村组。<br /><br /><strong>●城中区</strong>:总寨镇,南西山,村组。<br /><br /><strong>●城西区</strong>:彭家寨,海湖新区,村组。<br /><br /><strong>●城北区</strong>:大堡子镇,拥军路以西,(柴达木路495号以上),二十里镇青海大学以北,新号251号以上,老号75号以上。<br /><br /><strong>●湟中县。</strong><br /><br />【更新时间:2011-6-1 11:01_D】</td>

Rlay_2 2012-03-15
  • 打赏
  • 举报
回复
python有个专门的html解析模块:HTMLParser,你自己可以研究下,我也不清楚.
我只是按照你当前的html的特殊格式做了下简单的字符串解析,具体的你自己看吧,到底适用不适用.

#! -*- encoding:UTF-8 -*-
import re
#打开test.html文件
file = open('test.html', 'r')
filestr = ''

#将test.html的内容存入filestr字符串
for f in file:
filestr += f

file.close()
#用正则表达式匹配每行的如:<td class="table_title" width="150">公司编号</td>
patt = '<td class=.*<\/td>'
#找到<td></td>的结果集
rs = re.findall(patt, filestr)
#对结果集进行分析,如果当前字符串包含不派送范围,则下个如<td></td>的结果集就是所需要的字符串
for index, var in enumerate(rs):
var = var.decode('gbk')
if '不派送范围' in var:
print rs[index + 1].decode('gbk')

37,741

社区成员

发帖
与我相关
我的任务
社区描述
JavaScript,VBScript,AngleScript,ActionScript,Shell,Perl,Ruby,Lua,Tcl,Scala,MaxScript 等脚本语言交流。
社区管理员
  • 脚本语言(Perl/Python)社区
  • WuKongSecurity@BOB
加入社区
  • 近7日
  • 近30日
  • 至今

试试用AI创作助手写篇文章吧