查看: 319|回复: 2|关注: 0

[话题讨论] 爬虫进阶之模拟登陆

[复制链接]

论坛优秀回答者

26

主题

1163

帖子

154

最佳答案
  • 关注者: 43
发表于 2020-2-22 23:26:06 | 显示全部楼层 |阅读模式
本帖最后由 caicaibi 于 2020-2-22 23:27 编辑

    关于MATLAB版网络爬虫,绝大多数朋友只停留在爬取不需要登陆的网页信息,而一旦某网站信息需要登陆,就束手无策,这次帖子针对MATLAB版爬虫如何抓取登陆条件下的数据,做个简要介绍,让更多的朋友能了解到该方面的知识。
PS:由于本帖拿本网站作为素材,请大家学会了只进行爬虫操作,不要模拟水贴或发垃圾贴,谢谢!

1.模拟登陆: (输入自己的用户名和密码)
  1. %模拟网站发送登陆界面的FORM表单,模拟登陆
  2. clear;clc
  3. username='';%用户名
  4. password='';%密码
  5. r = matlab.net.http.RequestMessage;
  6. options = weboptions('RequestMethod','post',...%设计FORM表单参数
  7. 'username',username,...
  8. 'password',password,...
  9. 'UserAgent','Mozilla/5.0 (Windows NT 6.1; Win64; x64; rv:68.0) Gecko/20100101 Firefox/68.0');%针对自己的浏览器填写
  10. URL=['https://www.ilovematlab.cn/member.php?mod=logging&action=login&loginsubmit=yes&handlekey=login&loginhash=LYpzs&inajax=1&username=' username '&password=' password];
  11. MSG= webread(URL)%接收返回的登陆信息。
复制代码

2.模拟登陆,然后调用COOKIE,模拟登陆后的调用
  1. clear;clc
  2. username='';%用户名
  3. password='';%密码
  4. URL=['https://www.ilovematlab.cn/member.php?mod=logging&action=login&loginsubmit=yes&handlekey=login&loginhash=LYpzs&inajax=1&username=' username '&password=' password];

  5. r = matlab.net.http.RequestMessage;%调用请求的模板 结构体
  6. resp = send(r,URL);%请求服务器 返回的COOKIE存在resp.HEADER里,Name为'Set-Cookie'
  7. setCookieFields = resp.getFields('Set-Cookie');%提取出所有的COOKIE
  8. if ~isempty(setCookieFields)%判断是否接收到了COOKIE
  9.    cookieInfos = setCookieFields.convert;%从Set-Cookie字段中获取所有CookieInfos
  10.    r = r.addFields(matlab.net.http.field.CookieField([cookieInfos.Cookie]));%将COOKIE添加到请求中
  11.    resp = r.send('https://www.ilovematlab.cn/thread-552383-1-1.html');%模拟登陆状态发送任意请求
  12.    
  13.    %测试
  14.    temp=resp.Body.Data;%调用返回的网页数据
  15.    NAME=extractBetween(temp,'target="_blank" title="访问我的空间">','</a>')%查找特定的登陆标识,验证自己是否已经登陆,例如自己的[用户名,积分,用户组]
  16.    POINT=extractBetween(temp,'积分:','</a>')%积分
  17.    GROUP=extractBetween(temp,'用户组:','</a>')%用户组
  18. else
  19.     disp('无COOKIE,请求出错');
  20.     return;
  21. end
复制代码




新手

5 麦片

财富积分


050


0

主题

31

帖子

0

最佳答案
发表于 2020-3-5 14:47:08 | 显示全部楼层
必须赞                        

禁止发言

5 麦片

财富积分



0

主题

5

帖子

0

最佳答案
发表于 2020-3-18 22:14:43 | 显示全部楼层
提示: 作者被禁止或删除 内容自动屏蔽
您需要登录后才可以回帖 登录 | 注册

本版积分规则

关闭

站长推荐上一条 /4 下一条

快速回复 返回顶部 返回列表