php curl抓取网页内容(CURL实例讲述CURL)
优采云 发布时间: 2022-01-25 16:08php curl抓取网页内容(CURL实例讲述CURL)
本文实例介绍了基于PHP的curl后台远程登录正方教务系统的方法。分享给大家参考,详情如下:
从去年开始想怎么解决这件事,今年终于想通了,但是验证码一定要填。
如果能像360那样抢票,没有自动识别验证码,那就没问题了。废话不多。回到正题
在这里使用 CURL。
设计思路:先登录页面获取COOKIES,然后带着cookies去寻找验证码的服务器。最后,提供服务器所需的所有信息。
(这种思路是完全模拟浏览器访问页面,根本区别在于是人和机器)
公共函数 index(){ $ch = curl_init(); curl_setopt($ch, CURLOPT_URL, $url); //填写正确的URL curl_setopt($ch, CURLOPT_HEADER, 0); curl_setopt($ch , CURLOPT_USERAGENT, Mozilla/4.0 (compatible; MSIE 6.0; Windows NT 5.0)); curl_setopt($ch, CURLOPT_COOKIEJAR, $cookie_file); //main cookie的路径,这个保存页面cookie curl_setopt($ch, CURLOPT_RETURNTRANSFER,1); //的返回结果自动输出 $response = curl_exec($ch); curl_close($ch); }
访问正方教务系统首页时,一是获取页面中的HTML,二是获取cookies。
还有其他问题吗?获取 HTML 有什么用?
如果你仔细观察教务系统首页的HTML,你会发现里面有很多隐藏的字段,而且这些字段是变化的。
因此,您只需获取所有 HTML、解析它并获取您需要的所有字段。
HTML结构
如果你看到没有,那么隐藏字段是提交数据所必需的,不能再有了。
页面效果
接下来,我想问最重要的问题,验证码如何获取?
我想直接开始
不行吗?这样虽然验证码出来了,但是验证码不属于你,所以远程登录的时候会告诉你验证码错误。
那么如何获取自己的验证码呢?这时候,自然想到的是饼干。
服务器如何区分浏览器请求是否为同一人?这取决于 cookie 中的 sessionid。
所以。你把你在首页拿到的cookies,然后向服务器询问你的验证码,它会报错吗?
public function getImg() { $url = 根据图片格式不同,请注意 echo curl_exec($ch); curl_close($ch); }
然后在其他页面调用此方法,即可获取验证码。
CURL 的 PHP 请求和浏览器发送的 PHP 属于两个不同的线程,所以它们的 cookie 共享方式不同。
所以可以登录,但是不要以为可以这样登录,可以操作所有功能,那你就想错了。还有一个小细节。.
对PHP相关内容比较感兴趣的读者可以查看本站专题:《PHP curl使用总结》、《PHP数组(数组)操作技巧大全》、《PHP排序算法总结》、《PHP PHP中常见的遍历算法和技巧》、《PHP数据结构与算法教程》、《PHP编程算法总结》、《PHP数学运算技巧总结》、《PHP正则表达式使用总结》、《PHP运算与运算符使用总结》、 《PHP字符串(string)使用总结》和《PHP常用数据库操作技巧总结》
我希望这篇文章对你进行 PHP 编程有所帮助。