这个是网站上的标签
<td style="color:#458c3f; font-size:14px; font-weight:bold; padding-top:15px; padding-bottom:8px;" align="center" class="">环境影响评价文件受理公示—镇江盛润建材有限公司年产6万立方米混凝土砌块砖项目(报告表)(京口区环保局)</td>
有一个一样的align在前面,抓取的话总是抓到第一个
我是这么写的
title = extract_fields(r'<td align="center">(.*?)</tr>', datas,re.S) # 匹配标题
有什么办法只抓第二个吗?
title = extract_fields(r'<td style="color:#458c3f; font-size:14px; font-weight:bold; padding-top:15px; padding-bottom:8px;" align="center">(.*?)</td>', datas,re.S) # 匹配标题
全丢上去抓到了...
extract_fields返回的是啥,正则应该匹配到的都返回的,是不是这个函数过滤掉了。
只返回了第一个的字段
@扶荔: 没用过这个,看看源码是怎么处理的。不行就用re吧,楼下的re.findall就可以,返回的列表,选择自己要的就行。
pat = 'class="">(.*?)</td>'
title = re.compile(pat).findall(a)#找到匹配字段
pat 是正则表达式;a是你爬下来的文本字符串
这是我的方法,不知道可不可以用