MATLAB简易网络爬虫(未加入DFS)

% 2012/12/15 1:40
% MUST Edward.xu 
%% 
%清空缓存
clear all;close all;clc;
%warning off; %warning的部分不显示
%%
%打开初始页面
[sourcefile, status] = urlread(sprintf('http://www.sina.cn'));
%%
%正则匹配
%设定需要匹配的字符串模版,这里是爬虫算法,故获取为超链接
%pattern = '<a.+?href=([""]?)([^>\s]+)\1.*?>([\S\s]+?)<\/a>';  %这个版本是对的
%pattern = '<a href=([""]?)http([^>\s]+)\1';   %这个版本是测试是好的
pattern = '<a href=[""]http([^>\s]+)';         %这个版本是我测试的最好的,2012/12/15
[datafile, data_tokens] = regexp(sourcefile, pattern, 'match', 'tokens');%匹配特定的字符串
data = char(datafile)
%%
N=2;  %爬取的深度
%开始爬虫
for i=1:1:N
    url_spider = deblank(data(2,:));
    [sourcefile, status] = urlread(url_spider(10:end-1));
    pattern = '<a href=[""]http([^>\s]+)';
    [datafile, data_tokens] = regexp(sourcefile, pattern, 'match', 'tokens');%匹配特定的字符串
    data = char(datafile)
end

MATLAB简易网络爬虫(未加入DFS)_第1张图片

这里只包含了matlab抓网页,以及找出抓出网页里面的超链接,再重复抓的过程,具体加入DFS的版本之后再给出。

你可能感兴趣的:(MATLAB简易网络爬虫(未加入DFS))