精华内容
下载资源
问答
  • 二、实现代码clc,clear %% % 设置不用科学计数法显示数据 format short g % % % 读取源代码 sourcefile=urlread('file:///D:/Program%20Files/MATLAB/R2013a/gui3/sheet.html'); % 正则表达式获取第一行数据存为...

    一、需求分析
    抓取内容:
    这里写图片描述

    二、实现代码

    clc,clear
    %%
    % 设置不用科学计数法显示数据
    format short g
    % % 
    % 读取源代码
    sourcefile=urlread('file:///D:/Program%20Files/MATLAB/R2013a/gui3/sheet.html');
    % 正则表达式获取第一行数据存为data1
    expr1='<td .*?>(.*?)</td>';
    
    [datafile1, data_tokens1] = regexp(sourcefile, expr1, 'match', 'tokens');
    data1 = zeros(size(data_tokens1));
    for idx1 = 1:length(data_tokens1)
    data1(idx1) = str2double(data_tokens1{idx1}{1});
    end
    
    %正则表达式获取第二行到最后一行存为data2
    expr2='<td>(.*?)</td>';
    [datafile2, data_tokens2] = regexp(sourcefile, expr2, 'match', 'tokens');
    data2 = zeros(size(data_tokens2));
    for idx2 = 16:length(data_tokens2)
    data2(idx2) = str2double(data_tokens2{idx2}{1});
    end
    data2=data2(1,16:end);
    % 合并data1和data2
    data3=[data1 data2];
    %%得到每个变量的数据
    number=data3(1,1:15:end)';
    Month=data3(1,2:15:end)';
    Day=data3(1,3:15:end)';
    Time=data3(1,4:15:end)';
    p=data3(1,5:15:end)';
    a=data3(1,6:15:end)';
    v=data3(1,7:15:end)';
    T=data3(1,8:15:end)';
    Cp=data3(1,9:15:end)';
    s=data3(1,10:15:end)';
    t1=data3(1,11:15:end)';
    S=data3(1,12:15:end)';
    H=data3(1,13:15:end)';
    P=data3(1,14:15:end)';
    n=data3(1,15:15:end)';
    % 转换成矩阵
    data4=[number Month Day Time p a v T Cp s t1 S H P n]
    展开全文
  • 13行MATLAB代码实现网络爬虫 爬取NASA画廊星图 更新于:​2021/04/18​ 源代码 N = input('Input the number you want to download:'); URL = 'https://www.nasa.gov/api/2/ubernode/_search'; mainURL = '...

    13行MATLAB代码实现网络爬虫 爬取NASA画廊星图


    2021/04/18​上传

    2021/04/21更新:修改N的输入方式,增加对png格式图片的下载支持,增加了自动处理几种错误情况的代码,能够将下载过程与报错记录保存到日志中。

    源代码

    N = input('Input the number you want to download:');
        URL = 'https://www.nasa.gov/api/2/ubernode/_search';
    mainURL = 'https://www.nasa.gov/sites/default/files/';
    opt = weboptions('Timeout',10);
    for i=1:N
        data = webread(URL,'size',num2str(N),'from','0','sort','promo-date-time:desc','q','((ubernode-type:image) AND (routes:1446))','_source_include','promo-date-time,master-image,nid,title,topics,missions,collections,other-tags,ubernode-type,primary-tag,secondary-tag,cardfeed-title,type,collection-asset-link,link-or-attachment,pr-leader-sentence,image-feature-caption,attachments,uri',opt);
        imgURL = append(mainURL,data.hits.hits(i).x_source.master_image.uri(10:end));
        img = webread(imgURL,opt);
        filename = append('Img_',num2str(i),'_',data.hits.hits(i).x_source.master_image.title,'.jpg');
    	imwrite(img,filename);
        disp(append('FINISHED:',num2str(i),'/',num2str(N)));
    end
    disp('Completed!');
    

    使用方法

    .m脚本文件所在路径添加到MATLAB路径中,运行脚本,命令行提示:Input the number you want to download:,输入你想下载的图片数量后,爬虫自动开始运行并显示进度,进度读完则显示Completed!,图片保存在脚本所在目录下。

    讲解

    本爬虫仅适用于爬取NASA画廊每日图片,但只要取得了图片链接,用此方法可以爬取其他更多网站。

    https://www.nasa.gov/multimedia/imagegallery/iotd.html使用F12中Network工具,可以抓取到网页获取图片信息的网址接口URL,它的参数由几个部分组成,其中size对应一次获取的图片数量,则可通过变更size来获得不同的图片数量。

    URL的响应中,包含我们要获取的图片链接的一部分,即uri

    通过mainURLuri(10:end)组合可以得到不同编号的图片链接,使用webread()函数读入即可。

    weboption()函数用于设置访问方式为Get与超时响应时间Timeout

    append()合并字符串,imwrite()将图片写入指定文件并重命名。

    via nasa.gov


    2021/04/21更新:修改N的输入方式,增加对png格式图片的下载,增加了自动处理几种错误情况的代码,能够将下载过程与报错记录保存到日志中。

    2021/04/21源代码:

    disp('Input the number you want to download:[N1-N2]');
    N1 = input('N1:');
    N2 = input('N2:');
    disp(append('From ',num2str(min(N1,N2)),' to ',num2str(max(N1,N2)),' There are ',num2str(max(N1,N2)-min(N1,N2)+1),' pictures.'));
    URL = 'https://www.nasa.gov/api/2/ubernode/_search';
    mainURL = 'https://www.nasa.gov/sites/default/files/';
    opt = weboptions('Timeout',10);
    ispng=1;
    path = 'F:\PictureDownload\PictureDownload';
    for i=min(N1,N2):max(N1,N2)
        try
            data = webread(URL,'size',num2str(i),'from','0','sort','promo-date-time:desc','q','((ubernode-type:image) AND (routes:1446))','_source_include','promo-date-time,master-image,nid,title,topics,missions,collections,other-tags,ubernode-type,primary-tag,secondary-tag,cardfeed-title,type,collection-asset-link,link-or-attachment,pr-leader-sentence,image-feature-caption,attachments,uri',opt);
        catch
            disp('[ERROR]Failed to connect to the website. Check your web connection.');
            break
        end
        imgURL = append(mainURL,data.hits.hits(i).x_source.master_image.uri(10:end));
        try
            img = webread(imgURL,opt);
        catch
            disp(append('[WARN]Failed to download the ',num2str(i),'th picture. It has been skipped up.'));
            disp(append('[LINK]',imgURL));
            i = i+1;
            continue
        end
        filename = append(path,'Img_',num2str(i),'_',data.hits.hits(i).x_source.master_image.title,'.jpg');
        try
            imwrite(img,filename);
            disp(append('[',num2str(i),']FINISHED:',num2str(i-min(N1,N2)+1),'/',num2str(max(N1,N2)-min(N1,N2)+1)));
        catch
            filename = append(path,'Img_',num2str(i),'_',data.hits.hits(i).x_source.master_image.title,'.png');
            try
                imwrite(img,filename);
            catch
                ispng=0;
            end
            if ispng==1
                disp(append('[WARN]The ',num2str(i),'th picture is the format of png, it has been download successfully.'))
            else
                disp(append('[WARN]Failed to write in img file, The No.',num2str(i),' picture has been skipped up.'));
                disp(append('[LINK]:',imgURL));
                i = i+1;
            end
        end
    end
    disp('Completed!');
    
    展开全文
  • 主要利用matlab中的webread 和regexp两个函数 二、爬虫思路 获取源码发现,歌手和歌曲都存在这个标签里 所以使用regexp正则匹配就好了 三、实现 clc;close all;clear all top = cell(501,2);% k=1;...

    一、利用的函数

    主要利用matlab中的webread 和regexp两个函数

    二、爬虫思路

    获取源码发现,歌手和歌曲都存在这个标签里

    所以使用regexp正则匹配就好了

    三、实现

    clc;close all;clear all
    
    top = cell(501,2);%
    k=1;
    top{1,1}='名次';
    top{1,2}='歌手-歌名';
    
    for i=1:23
        url = strcat('http://www.kugou.com/yy/rank/home/',num2str(i),'-8888.html?from=rank');
        webdate = webread(url);
        tpn = 'li class=" " title=(.*?)data-index';
        [sdate,~,~] = regexp(webdate,tpn,'tokens');
        sn = length(sdate);
        for j=1:sn
    
            top{k+1,1}=strcat('第',num2str(k),'名');
            top(k+1,2)=sdate{j};
            k=k+1;
        end
    end
    

      实现的结果

    转载于:https://www.cnblogs.com/mathpro/p/9051962.html

    展开全文
  • 本文主要就是对比用python写的一个谷歌翻译的爬虫,分享一下MATLAB代码,主要使用的函数就是urlread和regexp。 先看一下效果: 代码是这个样子的(两个文件一个主文件:Google_translate.m)一个函数文件...

    本文主要就是对比用python写的一个谷歌翻译的爬虫,分享一下MATLAB代码,主要使用的函数就是urlread和regexp。

    先看一下效果:

    代码是这个样子的(两个文件一个主文件:Google_translate.m)一个函数文件Translate_mean.m:我用的全局变量传递参数所以都没有输入。这个是主函数Google_translate.m的内容:

    function Google_translate
    
    global Source_first Translate_two Source_Content Translate_Content 
    global Langurage
    fh = figure('name','Google Translate');
    
    Langurage = {'zh-CN','en','ja','fr','de'};
    
    Source_first = uicontrol('parent', fh, 'style', 'popupmenu',...
        'units','normalized',...
        'position',[0.4, 0.7 0.1, 0.1],...
        'string',Langurage);
    
    Translate_two = uicontrol('parent', fh, 'style', 'popupmenu',...
        'units','normalized',...
        'position',[0.55, 0.7 0.1, 0.1],...
        'string',Langurage);
    
    Source_Content = uicontrol('parent', fh, 'style', 'edit',...
        'units','normalized',...
        'position',[0.1, 0.1, 0.4, 0.6],...
        'HorizontalAlignment','left',...
        'Max',2);
    % set( Source_Content )
    
    Translate_Content = uicontrol('parent', fh, 'style', 'edit',...
        'units','normalized',...
        'position',[0.55, 0.1, 0.4, 0.6],...
        'HorizontalAlignment','left',...
        'BackgroundColor',[1,1,1],...
        'Max',2);
    % set( Translate_Content )
    
    Translate = uicontrol('parent', fh, 'style', 'pushbutton',...
        'units','normalized',...
        'position',[0.1, 0.74, 0.2, 0.07],...
        'string','Translate',...
        'callback','Translate_mean');
    
        uicontrol('parent',fh, 'style','text','units','normalized',...
            'position',[0.23, 0.84, 0.6, 0.1],...
            'string','Google translation API using',...
            'fontsize',18)
    

    这个是button调用的小函数Translate_mean.m的内容:

    function Translate_mean
    %{
    Source = 'en';
    Totrans = 'cn';
    ANS_url = urlread(['http://translate.google.cn/translate_a/single?client=gtx&sl=',Source, '&tl=', Totrans, '&dt=t&q=googleq=how are you']);
    %}
    global Source_first Translate_two Source_Content Translate_Content
    global Langurage
    
    H1 = get(Source_first, 'value');
    H2 = get(Translate_two, 'value');
    Content_source = get(Source_Content,'string');
    
    Source = Langurage{H1};
    Totrans = Langurage{H2};
    Content = Content_source;
    
    Content(Content=='。') = '.';
    
    LEN = size(Content,1);
    TransContent = cell(LEN,1);
    for ihang = 1:LEN
        % string to UTF-8
        Str2 = dec2hex( unicode2native(Content(ihang,:), 'UTF-8') );
        Allstr = [];
        for i = 1:length(Str2)
            Allstr = [ Allstr,'%', Str2(i,:) ];
        end
        
        ANS_url = urlread(['http://translate.google.cn/translate_a/single?client=gtx&sl=',...
            Source, '&tl=', Totrans, '&dt=t&q=googleq=', Allstr, '&ie=UTF-8']);
        
        Tl = regexp( ANS_url, '[[["[gG]oogle.*u003d (.*)","google', 'tokens' );
        TransContent{ihang} = Tl{1,1}{1,1};
    end
    
    set(Translate_Content, 'string', TransContent)
    
    
    

     

    以上就是如何实现最开始的效果图的哪个功能。我下面给一个小代码是用来普通测试,测试过了之后就可以再去调试上面两个小函数:(有一点注释讲究着看吧)

    clear;clc
    Source = 'zh-CN';
    % Source = 'en';
    Totrans = 'en';
    Str = '你是个沙雕额';
    
    % string to UTF-8
    Str2 = dec2hex( unicode2native(Str, 'UTF-8') );
    Allstr = [];
    for i = 1:length(Str2)
        Allstr = [ Allstr,'%', Str2(i,:), ];
    end
    
    % Str = '%E6%B1%89';
    
    % sl = source language
    % tl = translate language
    % ie = input format
    % oe = output format
    ANS_urlr = urlread(['http://translate.google.cn/translate_a/single?client=gtx&sl=',...
        Source, '&tl=', Totrans, '&dt=t&q=googleq=',Allstr,'&ie=UTF-8']);
    
    Tl = regexp( ANS_urlr, '[[["[gG]oogle.*u003d (.*)","google', 'tokens' );
    result = Tl{1,1}{1,1}
    % Tl{1,1}{1,1}
    
    % &oe=UTF-8
    % &ie=UTF-8
    

     

    MATLAB的爬虫比python的似乎要方便。

    就是感觉很粗暴,直接一个网址。但是想了想简单的东西一般功能就少一点吧。

     

    展开全文
  • 这里复杂的情况暂时不考虑。。测试网址为pixiv的每日排行榜 = = url = '... text = webread(url) % urlopen函数也可以打开网页 link = regexp(text,'data-filter=".*?lazy-image"data-src="(htt...
  • MATLAB对浏览器进行控制,能实现的功能远不止网页自动登录,还有其他有意思的应用。1) 网页自动登录2) 公众号后台关注数据的爬虫3) 自动发微博,删微博我认识MATLAB与ie交互这个知识点是好几年前的事了,在以前...
  • 题记:最近有幸参与了一个机器学习的项目,我的主要工作是帮助进行数据预处理,期间用Python实现了K-means聚类算法,感觉收获很多特此记录下来和大伙儿分享。一机器学习项目的主要流程 机器学习项目的主要流程有...
  • 深度优先搜索算法及其MATLAB实现

    千次阅读 2019-04-13 14:33:32
    深度优先搜索是一种在开发爬虫早期使用较多的方法。它的目的是要达到被搜索结构的叶结点(即那些不包含任何超链的HTML文件) 。在一个HTML文件中,当一个超链被选择后,被链接的HTML文件将执行深度优先搜索,即在搜索...
  • 之前介绍的可视化、数据处理、爬虫等一些操作,简单来讲都是数据分析过程或多或少接触到的部分,本想继续去介绍更多关于R语言有趣的包,比如Rmarkdown、shiny等,不过涉及的内容比较多,所有我打算隔一段时间再整理...
  • 之前写过MATLAB的一个谷歌翻译的爬虫,但是要搞成EXE独立运行就很麻烦,这个时候python就比较有用了。 效果是这样的: 就是选择左边被翻译的语言,右边选要翻译的语言,点翻译,就出现在右边。 先看看怎么实现...
  • MATLABMYSQL爬虫-zhgd.m

    2019-08-12 22:04:44
     最近有朋友问我MATLAB怎么弄爬虫,下载的大量数据怎么实现归类,借此,我弄了一个MATLAB爬虫,然后将下载的数据存储到MYSQL数据库的例子,在这里分享给大家。希望想做这方面的朋友,能对基本内容有所了解。 ...
  • 原址:...但如果 matlab 用户想要写个爬虫程序处理些简单任务,大可不必再学 python,matlab同样提供了获取 web 数据的函数,也能实现简单的爬虫。我来分享一个最近遇到的简单案例...
  • 如果从MATLAB的基础包(专业的工具箱除外的部分)里面投票: 哪个函数最难学?...这两个函数我学了N次, 或者半途而废, 或者学完就忘(这篇文章的目的就是...我写完正则表达式以后, 感觉到了它的强大, 并且发现它能实现几乎所...
  • 这个工具的诞生,是因为当时想学习一下爬虫,也是我第一次尝试调用API来实现功能,它自身可以导入已有的词典,支持Excel和mat格式,然后在里面没有查询到的单词就会联网查询。 ...
  • 本文将实现利用Python爬取并简单地可视化分析当当网的图书数据。 详细的exe、源代码、程序解析等文件请关注公众号, 回复关键词 当当网小爬虫 获取。 更多精彩内容请关注公众号 转载请注明出处 任务分析 ...
  • 实验要求如下: 学会使用一种编程语言实现爬取人人网关系网络的程序。该程序功能如下:1.  能够输入用户登陆所产生的cookie,允许爬虫对人人网进行爬取网页。2.  能够使用正则表达式对所获取的网页内容进行过滤...
  • ↑↑↑关注后"星标"简说Python人人都可以简单入门Python、爬虫、数据分析简说Python推荐编辑:张倩,来源:机器之心Oneoldwatch,likebrief python《统计学习导论》很经典,但习题用的是 R 语言实现,没关系,这次有...
  • 如果你经常用python做一些小的项目玩,或者用python做一些爬虫,又或者你去一些网站刷题,那么必将面对一个问题——写函数。“写函数”也就是自己写一个算法,用来实现一些功能。比如最简单的给电脑两个参数,让他...
  • 微信公众号:Python干货铺子关注即可开启快乐学习Python和Matlab的大门,您还在犹豫什么~前言众所周知,视频是一个学习新姿势知识的良好媒介。那么,如何利用爬虫更加方便快捷地下载视频呢?本文将从数据包分析到...
  • pachong_table.m

    2020-07-29 21:23:47
    利用matlab爬虫爬取网页上的表格数据,可以灵活根据网页内容修改正则表达式实现不同网站表格数据的爬取并分列在excel文件中储存。
  • 通过分布式爬虫进行数据抓取,构建了响应式的数据清洗和行情推送引擎.搭建了支持多语言的开放式回测框架.并构建了交互可视化的客户端和网站.测试系统语言环境实现功能Ubuntu 16.04 AMD64Python 2.7.6,2.7.11; 3.5,3.6...
  • 学习python一个月后,实现了简单的爬虫、神经网络等简单的项目,也初步见识到python的简单和可读性,但比较缺乏数据结构的知识,对于数据的操作的理解比较欠缺。然而,学习程序语言是为了解决问题,要么解决现在手里...
  • Python的学习笔记

    2020-05-28 22:46:33
    2020-05-28 Python是一种胶水语言,可以用来做各种事情,我...替代Matlab,用于所有的计算和画图; 做神经网络,实现人工智能中的算法; 数据分析,用爬虫收集数据,并分析处理; 在接下来的时间慢慢学习和整理… ...
  • 快速下载Visual Tracker Benchmark数据集

    千次阅读 2018-03-15 12:23:03
    跑kcf算法的MATLAB代码需要下载Visual Tracking Benchmark数据集,国内对官网的网速状况不佳,运行代码自带的download_video.m下载速度很慢,观察网页http://cvlab.hanyang.ac.kr/tracker_benchmark/datasets.html...
  • CodingGo技术社区自由的编程学习平台❈作者:小江,python爱好者,自学中,尝试爬虫、Django开发以及大数据,非CS科班出身。在校主要用MATLAB,现工作中偶尔使用python。博客主页:http://www.cae-space.cn/❈在...
  • python做数据分析的优势: 拥有大量的库为数据分析和处理提供了完整的工具链 ...相对于R和MATLAB,python可做的事情更多, 一系列的连贯性更加好, 如web开发,爬虫,脚本、运维、机器学习 环境...
  • 小白的Python日记1——前言 写在前面的话 ...原本自学Python是出于好奇,因为需要时刻关注竞争对手的最新动态,因此需要时常去网站搜索相关的新闻,所以想写一个小小的爬虫脚本来实现,因此接触到Python。...
  • 记录一下各种要求:(平时练习时就注意这方面的使用与总结回答一类的)(python学习基础项目练习:比如爬虫等)图像图形算法工程师:((要求总结))硕士及以上学历,有较强的算法分析和实现能力,熟练掌握C/C++,...

空空如也

空空如也

1 2
收藏数 39
精华内容 15
关键字:

matlab爬虫实现

matlab 订阅
爬虫 订阅