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|科大国创|2016-07-29|2016-07-26||公司会议室|特定对象调研|004001|基金管理公司|朱晋|董事会秘书 储士升,证券事务代表 杨涛||1.63|23.05","80340500||80000220|南方基金||300520|科大国创|2016-07-29|2016-07-26||公司会议室|特定对象调研|004001|基金管理公司|邹寅隆|董事会秘书 储士升,证券事务代表 杨涛||1.63|23.05","80340500||80050229|上投摩根||300520|科大国创|2016-07-29|2016-07-26||公司会议室|特定对象调研|004001|基金管理公司|厦金强|董事会秘书 储士升,证券事务代表 杨涛||1.63|23.05","80340500||80075936|中邮基金||300520|科大国创|2016-07-29|2016-07-26||公司会议室|特定对象调研|004001|基金管理公司|周楠|董事会秘书 储士升,证券事务代表 杨涛||1.63|23.05","80340500||10000018|中信证券||300520|科大国创|2016-07-29|2016-07-26||公司会议室|特定对象调研|005001|证券公司|杨泽原,刘雯蜀,承婧,王筱峻,杨鑫|董事会秘书 储士升,证券事务代表 杨涛||1.63|23.05"]}]})

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

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

1、导入相关库

import scrapy
import json
import re

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

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

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

\为转义符

评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值