打开APP
userphoto
未登录

开通VIP,畅享免费电子书等14项超值服

开通VIP
利用Matlab正则表达式爬取网页数据

          如果我们经常需要从网上搞一些数据,如果你只会使用CTRL+C 然后CTRL+V,你就out了,假使你是搞计算机的那就更加out了,网上的数据是搭载在计算机程序上的,既然是在计算机程序上,如果我们能得到获得其相应权限,数据自然不是问题。下面就以利用Matlab来获取网页上的数据为例来简单说明一下,其他程序语言如Python也行,没试过。

      Matlab提供了urlread函数来获取网页内容,而想从网页内(好长好长的文本字符)获取想要的数据,需要使用Matlab中的正则表达式函数regexp,两个函数的具体使用内容比较多,见help吧。我以读取网页上的彩票数据为例,彩票

,希望大家都能中大奖发大财
,我这里想获得七星彩数据。

      1、进入彩票大厅->历史开奖数据,如下图:


      2、在当前页面空白处右键单击,然后选取:查看源代码,之后会弹出如下脚本文件(这样做主要是查看正则表达式的表示格式)

  

     发现没有我们要的数据就在这里了,我们如何取出来啦,根据正则表达式的语法,我们知道类似<spanclass='ball_5'>7</span> 就是一个正则式的具体化了,其他的号码形式类似,所以在此我要找的正则式就是<spanclass='ball_5'>(/d)</span> ,在此稍作解释,这里的(/d)表示只要遇到字符串的两边的形式和模板一样,中间含有一个0-9之间的一个数字,那我们的正则式就标记一下在字符文本中的一个地方发现了有我们想要的数字了。当正则式走完整个文本后,就会获得当前文本中所有满足这样的数字,然后我们取出来数字就行了,这个看一下程序就很清楚了。

3、前面是准备工作,现在编写Matlab程序,获取数据

  1. clc;  
  2. clear ;  
  3. tic;  
  4. %网页地址  
  5. WebSite='http://chart.cp.360.cn/kaijiang/qxc?lotId=110022&spanType=0&span=30&r=0.5169432614929974#roll_132';  
  6. [sourcefile,status]=urlread(WebSite);  
  7. %正则表达式,不同的网页不同的数据不一样的,所以要查看一下网页源码呀  
  8. expr1='<span class=''ball_5''>(\d)</span>';%expr1= '<span class='ball_5'>0</span>';  
  9. %% 正则表达式匹配,根据help文件知道:  
  10. %'match':Text of each substring that matches the pattern in expression,  
  11. %翻译过来就是 :把每一个和正则式匹配上的子字符串都存放下来  
  12. %Text of each captured token in str  
  13. %翻译过来就是 :把每一个和正则式匹配上的标记(在这里就是数字)都存放下来  
  14. %这个函数其他使用比较多,见help吧  
  15. %在此我们要的数据都是存放在data_tokens cell文件中的,他们是字符形式  
  16. [datafile,data_tokens]=regexp(sourcefile,expr1,'match','tokens');  
  17. a=data_tokens';  
  18. [m,n]=size(a);  
  19. data=zeros(m,n);  
  20. for i=1:m  
  21.     data(i)=str2double(a{i}{1});%字符转化为数字  
  22. end  
  23. %七星彩是七个数字为一组的,需要把数据重新组织一下  
  24. Data=reshape(data,7,m/7);  
  25. Data=Data';  
  26. SourceData=Data;  
  27. toc;  
好了,自此我们就完成了从网页上获取数据的过程。

 


本站仅提供存储服务,所有内容均由用户发布,如发现有害或侵权内容,请点击举报
打开APP,阅读全文并永久保存 查看更多类似文章
猜你喜欢
类似文章
【热】打开小程序,算一算2024你的财运
matlab里面的正则表达式
PHP中一些可以替代正则表达式函数的字符串操作函数
python中的正则表达式
python正则表达式的常用用法
使用Python正则表达式模块,让操作更加简单
正则表达式(python3)
更多类似文章 >>
生活服务
热点新闻
分享 收藏 导长图 关注 下载文章
绑定账号成功
后续可登录账号畅享VIP特权!
如果VIP功能使用有故障,
可点击这里联系客服!

联系客服