加入收藏 | 设为首页 | 会员中心 | 我要投稿 湖南网 (https://www.hunanwang.cn/)- 科技、建站、经验、云计算、5G、大数据,站长网!
当前位置: 首页 > 编程 > 正文

PHP行使Curl实现模仿登录及抓取数据成果示例

发布时间:2021-05-22 06:12:51 所属栏目:编程 来源:网络整理
导读:本篇章节讲授PHP行使Curl实现模仿登录及抓取数据成果。供各人参考研究详细如下: 行使PHP的Curl扩展库可以模仿实现登录,并抓取一些必要用户账号登录往后才气查察的数据。详细实现的流程如下(小我私人总结): 1. 起首必要对响应的登录页面的html源代

本篇章节讲授PHP行使Curl实现模仿登录及抓取数据成果。分享给各人供各人参考,详细如下:

行使PHP的Curl扩展库可以模仿实现登录,并抓取一些必要用户账号登录往后才气查察的数据。详细实现的流程如下(小我私人总结):

1. 起首必要对响应的登录页面的html源代码举办说明,得到一些须要的信息:

(1)登录页面的地点;

(2)验证码的地点;

(3)登录表单必要提交的各个字段的名称和提交方法;

(4)登录表单提交的地点;

(5)其它要必要知道要抓取的数据地址的地点。

2. 获取cookie并存储(针对行使cookie文件的网站):

3. 获取验证码并存储(针对行使验证码的网站):

声名:

因为不能实现验证码的辨认,以是我这里的做法是,把验证码图片抓取下来存放到当地文件中,然后在本身项目中的html页面中表现,让用户去填写,等用户填写完账号、暗码和验证码,并点击提交按钮之后再去举办下一步的操纵。

4. 模仿提交登录表单:

5. 抓取数据:

到今朝为止,已经把数据地址地点的这个页面都抓取下来存储在字符串变量$data中了。

必要留意的是抓取下来的是一个网页的html源代码,也就是嗣魅这个字符串中不只包括了你想要的数据,还包括了很多的html标签等你不想要的对象。以是假如你想要从中提取出你必要的数据的话,你还要对存放数据的页面的html代码举办说明,然后团结字符串操纵函数、正则匹配等要领从中提取出你想要的数据。

以上要领对行使http协议的一样平常网站是有用的。可是假如你要模仿登录的是行使了https协议的网站的话还必要添加如下一些处理赏罚:

1. 跳过https验证:

2. 行使用户署理:

留意:

假如不添加这些处理赏罚的话模仿登录时是不能乐成的。

行使以上措施模仿登录网站一样平常都是能乐成的,可是现实上照旧必要针对模仿登录的网站详细环境详细思量。譬喻:有些网站编码差异,以是你抓取下来的页面是乱码的,这时就要举办一下编码转换,如:$data = iconv("gb2312","utf-8",$data);,把gbk编码转换为utf8编码。尚有一些对安详性要求较量高的网站,好比网银,会把验证码放在一个内联框架中,这时你就必要先抓取到内联框架的页面然后在从中提取出验证码的地点,再去抓取验证码。尚有一些网站(好比网银)是在js代码中去提交表单的,提交表单之前还会去做一些处理赏罚,好比加密等,以是假如你是直接提交的话也是不能登录乐成的,你必必要去做相同的处理赏罚后再提交,可是这种环境假如你能知道js代码中举办的详细操纵,好比加密的话,加密算法是奈何的,你就可以举办跟它一样的处理赏罚,然后再去提交数据,这样也是能乐成的。可是,要害的处所来了,假如你基础不知道它举办的是什么操纵,好比它举办了加密,可是你不知道加密的详细算法,那么你就无法举办沟通的操纵,也就不能乐成地模仿登录了。这方面典范的案例就是网银,它在js代码中提交表单之前行使网银控件对用户提交的暗码和验证码举办了一些处理赏罚,可是我们基础不知道它举办的是什么操纵,以是无法模仿。以是假如你觉得你看了本文之后就能模仿登录网银的话那么你就太灵活了,人家银行的网站能那么轻易被你模仿登录吗?虽然,假如你能破解网银控件的话,那就另当别论了。话说返来,为什么我的感觉云云深刻,由于我就碰着这个困难了,不说了,说多了都是泪啊。。。

更多关于PHP相干内容感乐趣的读者可查察本站专题:《》、《》、《》、《》、《》、《》、《》及《》

但愿本文所述对各人PHP措施计划有所辅佐。

(编辑:湖南网)

【声明】本站内容均来自网络,其相关言论仅代表作者个人观点,不代表本站立场。若无意侵犯到您的权利,请及时与联系站长删除相关内容!

    热点阅读