600字范文,内容丰富有趣,生活中的好帮手!
600字范文 > Scrapy笔记(2)——使用正则表达式提取jQuery文档内容

Scrapy笔记(2)——使用正则表达式提取jQuery文档内容

时间:2020-06-16 14:33:29

相关推荐

Scrapy笔记(2)——使用正则表达式提取jQuery文档内容

任务:提取如下网页中Data中内容:

jQuery1123006065544693397551_1623470103055({"Message":"","Status":0,"Data":[{"TableName":"RptSumJGDYMap","TotalPage":1,"ConsumeMSecond":19,"SplitSymbol":"|","FieldName":"CompanyCode,CompanyName,OrgCode,OrgName,OrgSum,SCode,SName,NoticeDate,StartDate,EndDate,Place,Description,Orgtype,OrgtypeName,Personnel,Licostaff,Maincontent,ChangePercent,Close","Data":["80340500||80000222|华夏基金||300520|科大国创|-07-29|-07-26||公司会议室|特定对象调研|004001|基金管理公司|朱晋|董事会秘书 储士升,证券事务代表 杨涛||1.63|23.05","80340500||80000220|南方基金||300520|科大国创|-07-29|-07-26||公司会议室|特定对象调研|004001|基金管理公司|邹寅隆|董事会秘书 储士升,证券事务代表 杨涛||1.63|23.05","80340500||80050229|上投摩根||300520|科大国创|-07-29|-07-26||公司会议室|特定对象调研|004001|基金管理公司|厦金强|董事会秘书 储士升,证券事务代表 杨涛||1.63|23.05","80340500||80075936|中邮基金||300520|科大国创|-07-29|-07-26||公司会议室|特定对象调研|004001|基金管理公司|周楠|董事会秘书 储士升,证券事务代表 杨涛||1.63|23.05","80340500||10000018|中信证券||300520|科大国创|-07-29|-07-26||公司会议室|特定对象调研|005001|证券公司|杨泽原,刘雯蜀,承婧,王筱峻,杨鑫|董事会秘书 储士升,证券事务代表 杨涛||1.63|23.05"]}]})

问题:jQuery文档内容,无法直接转为json或用xpath进行处理。

方案:使用re库,通过pile构建表达式,re.findall匹配字段,再转为json格式进行处理。

1、导入相关库

import scrapyimport jsonimport re

2、在返回处理函数中使用正则表达式提取字段

def singlesurveyMem(self, response):rs = response.textgetdata = pile(r'{"Message":"","Status":0,"Data":\[(.*?)\]}\)$')rs_re = re.findall(getdata, rs)data = json.loads(rs_re[0])memlist = data['Data']stringlist = memlist[0].split('|')

其中(.*?)为需提取的字段。

\为转义符

本内容不代表本网观点和政治立场,如有侵犯你的权益请联系我们处理。
网友评论
网友评论仅供其表达个人看法,并不表明网站立场。