python爬虫_数据解析_正则_ZHOU125disorder_

  • requests爬取数据的流程
指定url

发起请求

获取响应数据

持久化存储
  • 聚焦爬虫

  • 在持久化存储之前要进行数据解析

指定url

发起请求

获取响应数据

数据解析

持久化存储
  • python实现数据解析的方法
正则表达式

xpath解析

bs4解析
  1. 常用正表达式则
  • 在python中使用正则表达式需要引入名为re的库``import re

  • 限定符

  1. ?
?:?前面的字符可以出现零次或一次
  1. *
*:*前面的字符可以出现零次或无数次
  1. +
+:+前面的字符可以出现至少一次
  1. {}
{}:{}内部可以为一个或二个参数
{n}:{n}前面的字符串固定为n个
{n,}:{n,}前面的字符串为n到无穷个
{m,n}:{m,n	}前面的字符串为m到n个
  1. ()
():()括号内部的字符串作为一个整体
  • 或运算符
  1. |
|:i (love|like)
匹配i love或i like
  • 字符
  1. [ ]
[abc]由abc这几个字母构成
[a-d]由a-d这个范围里面的字母构成
[A-D]由A-D这个范围里面的字母构成
[0-9]代表数字
如果在[^]前面写一个^则代表:代表要求匹配除了^后面列出字符以外的字符
  1. \d
\d代表数字与[0-9]一样
\D代表非数字
  1. \w
\w代表数字字母下划线和中文
\W非单词字符
  1. \s
\s所有的空白字符包括空格,制表符,tab字符,换页符……=[\f\n\r\t\v]
\S非空白字符
  1. .
点(.)代表除了换行以外任意的字符
  • 特殊字符
  1. ^与$
^匹配行首	^a匹配行数的a
$匹配行尾	a$匹配行尾的a
  • 贪婪与懒惰
贪婪匹配	.*
懒惰匹配	.*?
re.I:忽略大小写
re.M:多行匹配
re.G:全局搜索
re.S:单行匹配
re.sub(正则表达式,替换内容,字符串)

使用正则爬取图片

import requests
if __name__ == "__main__":
    #如何爬取图片数据
    url = 'https://dss3.bdstatic.com/70cFv8Sh_Q1YnxGkpoWK1HF6hhy/it/u=1917437437,301204826&fm=26&gp=0.jpg'
    #content返回的是二进制形式的图片数据
    # text(字符串) content(二进制)json() (对象)
    img_data = requests.get(url=url).content
    with open('./鞠婧祎.jpg', 'wb') as fp:
        fp.write(img_data)
  • 0
    点赞
  • 0
    收藏
    觉得还不错? 一键收藏
  • 0
    评论
请解释分析下面这段程序:%%%无序充电投标 clear clc load data_disorder Pch=[Pch_CS1_disorder;Pch_CS2_disorder;Pch_CS3_disorder;Pch_CS4_disorder];%充电站充电功率 %市场出清问题 Link=zeros(24,96);%时段换算矩阵(日前1h换算为实时15min) for i=1:24 Link(i,4*i-3:4*i)=1; end Loadcurve=[0.955391944564747,0.978345604157644,1,0.995019488956258,0.972932005197055,0.970333477695972,0.930489389346037,0.890428757037679,0.902771762667822,0.941966219142486,0.911000433087917,0.862061498484192,0.840190558683413,0.831095712429623,0.756604590731919,0.671719359029883,0.611520138588133,0.582936336076224,0.572542226071893,0.574707665656128,0.587267215244695,0.644218276310091,0.755521870939801,0.884798614118666]; Loadcurve=Loadcurve*Link;%换成96个时段 PL_base=[5.704;5.705;5.631;6.518;4.890;5.705;5.847]*1000;%负荷分布 PL=PL_base*Loadcurve;%基础负荷(负荷曲线从08:00开始算起,即第9个时段) Pf=sdpvar(7,96);%馈线功率 Pf(1,:)=PL(1,:)+Pch(1,:);Pf(2,:)=PL(2,:);Pf(3,:)=PL(3,:);Pf(4,:)=PL(4,:)+Pch(2,:);Pf(5,:)=PL(5,:)+Pch(3,:);Pf(6,:)=PL(6,:);Pf(7,:)=PL(7,:)+Pch(4,:);%馈线功率组成 Pg=sdpvar(10,96);%发电商分段电量 Pg_step=1000*[20,5,3,2,2,2,2,2,2,inf]';%报价区间 Price_DSO=[3:12]'*0.1;%分段电价 Obj=0.25*sum(sum((Price_DSO*ones(1,96)).*Pg));%目标为用电费用最小 Constraint=[0<=Pg<=Pg_step*ones(1,96),sum(Pg)==sum(Pf)];%约束条件 optimize(Constraint,Obj);%求解线性规划问题 Pg=double(Pg);%发电机功率 Pf=double(Pf);%馈线功率 isPg=(Pg>0);%为了计算出清电价,计算发电机分段选择情况 DLMP=sum(isPg)/10+0.2;%出清电价计算 %绘图 figure(1)%节点边际电价 stairs(DLMP); xlabel 时间 ylabel 电价(元/kWh) ylim([0.3,1.3]) figure(2)%负荷曲线 hold on plot(sum(PL)/1000); plot(sum(Pf)/1000,'r.-'); xlabel 时间 ylabel 负荷(MW) legend('基础负荷','无序充电负荷') Cost=sum(sum(Pch).*DLMP);%总用电费用 result_disorder.Cost=Cost;result_disorder.DLMP=DLMP;result_disorder.Pf=Pf;result_disorder.Pg=Pg;%结果保存 save('result_disorder','result_disorder');
06-14
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值