MATLAB读取网页内链接,Matlab使用urlread()读取网页乱码问题
2021年2月9日发(作者:television是什么意思)
Matlab
使用
urlread()
读取网页乱码问题
事先声明这是本人在网上找到的(
/
2012-05/
)
,非
原创:
Matlab
的
urlread()
函数可以读取网页,调用语法:<
p>
S =
urlread('URL','method',PARAMS)
共有三个参数,第
一个是网页地址,第二个是
get
或是
post
,意思很直白;第三个则是要向
网页传递的参数,详细
见
help
文档。本博文的这个问题不是重点。
重点在于,用这个读取中文网页会乱码。例如:
S=
urlread('');
自己去看
S
的内容,里面凡是应该是中文文字的部分都是问号。
<
/p>
3
年前,我写
Matlab
基础班讲义的时候实际已经把这个问题解决了,但是没有记录下来,
这次又遇
上同样的问题,一下子记不起来了(翻开当年讲义,看到自己写到
“
这个问题可以
通过手工修改
urlread()<
p>
函数解决
”
,感到很愤慨,多写一句我就不用费那
劳什子的精神了)
废话打住,<
/p>
下面开工修理
urlread()
函数,
让它能够正常搞中文网页
(注我用的是
2012A
版本,
其他版本可能有变化)
。在
Matlab
中输入
edit
urlread
打开函数代码文件。
修改
1
:
修改第一行的函数定义,本来是三个参数,在最后添加一个。
例如,我修改后:
function
[output,status] =
urlread(urlChar,method,params,webencoding)
在下面添加一句
if
nargin<4; webencoding='UTF-8'; end
作用是与修改前的函数调用语法兼容。
修改
2
:
<
/p>
修改参数数量检验语句,该语句位于文件中偏前部,例如原来是
n
arginchk(1,3)
改
为
na
rginchk(1,4)
修改
3
:
修改文件尾部的数据转换语句,它原本是:
output =
native2unicode(typecast(Array','uint8'),'UTF-8');
用
webencoding
替换
'UTF-8'
,注意包括单引号也要替换。
搞定了,
然后再读取网页。
一般中文网
页的网页编码是
'GBK'
(
兼容
p>
’GB2312'
)
,
调用语法是:
S=urlread('','get','','GBK')
这样返回来的文字里面就可以正常显示中文了。
为了方便大家修改,我把改好后的代码和未改的原代码
放在了下一页,就这一点是比原文
多的,也是害怕自己忘了。要是嫌麻
烦,就把下一页的代码复制粘贴过去,覆盖源代码,不
过别忘了把原代码保留一份,免得
忘了怎么改回来。
修改后的代码:
function [output,status] =
urlread(urlChar,method,params,webencoding)
if nargin<4;
webencoding='UTF-8';
end
%URLREAD Returns the contents of a URL
as a string.
%
S = URLREAD('URL') reads the content at
a URL into a string, S.
If
the
%
server returns binary data, the string
will contain garbage.
%
%
S =
URLREAD('URL','method',PARAMS) passes information
to the server as
%
part of the request.
The 'method' can be 'get',
or 'post' and PARAMS is a
%
cell array of
param/value pairs.
%
%
[S,STATUS] =
URLREAD(...) catches any errors and returns 1 if
the file
%
downloaded successfully and 0
otherwise.
%
%
Examples:
%
s = urlread('')
%
s
= urlread('ftp:///README')
%
s =
urlread(['file:///'
fullfile(prefdir,'history.m')])
%
%
From behind a firewall, use the
Preferences to set your proxy server.
%
%
See also URLWRITE.
%
Matthew J. Simoneau, 13-Nov-2001
%
Copyright 1984-2008 The MathWorks, Inc.
%
$$Revision: 1.3.2.10 $$ $$Date: 2008/10/02
18:59:57 $$
% This function
requires Java.
if ~usejava('jvm')
error('MATLAB:urlread:NoJvm','URLREAD
requires Java.');
end
import uptibleStreamCopier;
% Be sure the proxy settings are set.
xySettings
%
Check number of inputs and outputs.
error(nargchk(1,4,nargin))
error(nargoutchk(0,2,nargout))
if ~ischar(urlChar)
err
or('MATLAB:urlread:InvalidInput','The first input,
the URL, must be a character array.');
end
if (nargin > 1) &&
~strcmpi(method,'get') && ~strcmpi(method,'post')
p>
error('MATLAB:urlread:InvalidInput','Seco
nd argument must be either
end
% Do we want to throw
errors or catch them?
if nargout == 2
catchErrors = true;
else
catchErrors = false;
end
% Set default outputs.
output = '';
status = 0;
% GET method.
Tack param/value to end of URL.
if (nargin > 1) &&
strcmpi(method,'get')
if
mod(length(params),2) == 1
error('MATLAB:u
rlread:InvalidInput','Invalid parameter/value pair
arguments.');
end
for
i=1:2:length(params)
if (i == 1),
separator = '?'; else separator = '&'; end
param = char((params{i}));
value = char((params{i+1}));
urlChar = [urlChar separator param '='
value];
end
end
% Create a urlConnection.
[urlConnection,errorid,errormsg] =
urlreadwrite(mfilename,urlChar);
if
isempty(urlConnection)
if catchErrors,
return
else
error(errorid,errormsg);
end
end
% POST
method.
Write param/values
to server.
if (nargin > 1) &&
strcmpi(method,'post')
try
utput(true);
uestProperty(
...
'Content-
Type','application/x-www-form-urlencoded');
MATLAB读取网页内链接,Matlab使用urlread()读取网页乱码问题相关推荐
- html在网页中内嵌百度搜索,如何在我的网页内嵌一个百度搜索的网页
满意答案 double0821 2016.05.18 采纳率:51% 等级:10 已帮助:1069人 网页内包含百度搜索框代码: 查看代码打印 01 02 function g(formname ...
- 网页系统链接服务器失败,无法打开网页,错误 324 (net::ERR_EMPTY_RESPONSE):服务器已断开连接,且未发送任何数据...
今天从电脑上卸载了谷歌浏览器,后我的所有浏览器都打不开网页,后从网上查找原因,用第三点的第2条解决了问题. 一.如果能排除硬件上的原因(内存条不兼容,更换内存.显卡驱动是否正确按装或者是否被恶意覆盖否 ...
- matlab网页视频流,使用Matlab读取视频流文件
Matlab中对图像和视频流的读取还是很方便的,但是由于不常用Matlab读取视频流(这家伙处理能力较OpenCV还是慢些)偶有小忘,这次有在工作中遇到特此记录一下,Matlab的help文档关于视频 ...
- 知乎热议:替代 Matlab 的国产软件出现,开发商称半年内实现 Matlab 功能的70%
点击上方"3D视觉工坊",选择"星标" 干货第一时间送达 整理:公众号@雷锋网 本文仅做学术分享,如有侵权,请联系删除. 谁能替代 Matlab? " ...
- Chrome中实现使用迅雷一次性选中并下载网页内全部链接的方法
前期的一篇博客中,我们详细介绍了USGS遥感影像批量下载的方法.在利用这一方法生成每一幅影像的下载链接后,我们直接结合可以批量获取网页内下载链接的下载软件进行下载.而在这一过程中发现,在Chrom ...
- VB内嵌matlab simulink仿真
用VB控制matlab simulink仿真模型 要求 方案 VB代码: 要求 在VB界面里内嵌matlab simulink仿真模块,并能控制仿真中的参数. 方案 用 Matlab.Execute ...
- 微信内置浏览器第三方网页分享链接给朋友以及转发到朋友圈无链接图片和链接描述的问题
解决问题:微信内置浏览器第三方网页分享链接给朋友以及转发到朋友圈无链接图片和链接描述的问题 记录时间:2018-11-07 分享作者:小鹏 谨记:一定要按步骤一步一步来 先写一写思路:进入页面需要分享 ...
- matlab引用表格命令,如何用matlab引用excel表格数据-matlab如何从excel表格中读取数据?...
怎样利用matlab去读取一个excel表中多个sheet的数... Matlab如何导入excel数据的方法如下: 1.一xlsread()函数,比import简单的多,具体语句: A = xlsr ...
- matlab fni,一种基于MATLAB的车内语言清晰度自动计算方法与流程
本发明涉及汽车nvh性能技术领域,具体为一种基于matlab的车内语言清晰度自动计算方法. 背景技术: 汽车行业中,语言清晰度(ai,articulationindex)常用于衡量车内噪声存在时,驾乘 ...
最新文章
- 大话:边缘计算、雾计算、云计算
- 我的程序员之路:上帝的苹果
- spark.mllib:回归算法
- ie9无法获取未定义或 null 引用的属性“indexof”_前端JS基础篇(二)JS基本数据类型和引用数据类型及检测数据类型方法...
- 对应到对象 数据库驼峰_从源码角度理解Mybatis字段映射(一) - 驼峰式命名
- 毕业设计一周一记02
- 移动端触屏滑动touches使用
- Linux搜寻文件或目录命令解析
- photoshop菜鸟实用入门(2)----常用的一些快捷操作
- 转 jquery使用技巧小结
- NDCG、AUC介绍
- PyTorch实现CNN
- MySQL(10)-----多表创建及描述表关系(一对多的分析和实现)
- Named Entity Recognition for Chinese Social Media with Jointly Trained Embedding 笔记
- 电动汽车充放电最优调度 研究了EV充电和放电的调度优化问题 我们首先制定全局调度优化问题,其中优化充电功率以最小化所有在白天执行充电和放电的EV的总成本
- PTA 7-6 评委打分 java语言 班级里要搞智力竞赛 同学们都踊跃参加。进入最后决赛的是10个同学,随着一道道题目的出示,有时是1号选手得分,有时是5号选手得分,每次答对者得10分
- 软件工程 - 项目管理
- 剑指 Offer 05. 替换空格无标题(正则表达式)
- source命令的作用
- 对话Atlassian认证专家叶燕秀:Atlassian产品进入后Server时代,中国用户应当何去何从?