PHP CURL模拟百度网盘登陆

简介: PHP CURL模拟百度网盘登陆

通过CURL模拟登录并获取数据,一些网站需要权限认证,必须登录网站后,才能有效地抓取网页并采集内容,这就需要curl来设置cookie完成模拟登录网页,php的curl在抓取网页内容方面效率是比较高的,而且支持多线程,而file_get_contents()效率就要稍低些。

模拟登录的代码如下所示:

1. <?php
2. /*
3. 
4. 函数login_post(),需要提供一个url地址,一个保存cookie文
5. 件,以及post的数据(用户名和密码等信息),注意php自带的http_build_query()
6. 函数可以将数组转换成相连接的字符串,如果通过该函数登录成功后,我们要获取
7. 登录成功个页面信息。声明函数的代码如下所示:
8. 
9. */
10. 
11. function login_post($url, $cookie, $post){
12.   $ch = curl_init(); //初始化curl模块
13.   curl_setopt($ch, CURLOPT_URL, $url); //登录提交的地址
14.   curl_setopt($ch, CURLOPT_HEADER, 0); //是否显示头信息
15.   curl_setopt($ch, CURLOPT_RETURNTRANSFER, 0); //是否自动显示返回的信息
16.   curl_setopt($ch, CURLOPT_COOKIEJAR, $cookie); //设置cookie信息保存在指定的文件夹中
17.   curl_setopt($ch, CURLOPT_POST, 1); //以POST方式提交
18.   curl_setopt($ch, CURLOPT_POSTFIELDS, http_build_query($post));//要执行的信息
19.   curl_exec($ch); //执行CURL
20.   curl_close($ch);
21. }
22. 
23. /*
24. 
25. get_content()中用curlopt_cookiefile可以读取到登录保存的cookie信
26. 息 最后讲页面内容返回.我们的目的是获取到模拟登录后的信息,也就是
27. 只有正常登录成功后菜能获取的有用的信息,下面举例代码
28. 
29. */
30. 
31. function get_content($url, $cookie){
32.   $ch = curl_init(); //初始化curl模块
33.   curl_setopt($ch, CURLOPT_URL, $url); //登录提交的地址
34.   curl_setopt($ch, CURLOPT_HEADER, 0); //是否显示头信息
35.   curl_setopt($ch, CURLOPT_RETURNTRANSFER, 1); //是否自动显示返回的信息
36.   curl_setopt($ch, CURLOPT_COOKIEJAR, $cookie);//设置cookie信息保存在指定的文件夹中
37.   $rs = curl_exec($ch); //执行curl转去页面内容
38.   curl_close($ch);
39.   return $rs; //返回字符串
40. }
41. 
42. 
43. 
44. // 模拟登陆测试代码
45. 
46. $post = array(
47. 'username' => 'admin',
48. 'password' => '123456',
49. '_submit' => '登录'
50. );
51. $url = "http://www.ceshi.com/login.php"; //登录地址, 和原网站一致
52. $cookie = dirname(__FILE__).'/cookie_ydma.txt'; //设置cookie保存的路径
53. $url2 = "http://www.ceshi.com/order.php"; //登录后要获取信息的地址
54. 
55. login_post($url, $cookie, $post); //调用模拟登录
56. $content = get_content($url2, $cookie); //登录后,调用get_content()函数获取登录后指定的页面信息
57. 
58. // @unlik($cookie); //删除cookie文件
59. file_put_contents('save.txt', $content); //保存抓取的页面内容
相关文章
|
4月前
|
JSON PHP 数据格式
PHP curl方法封装
PHP curl方法封装
31 0
|
1月前
|
PHP 数据格式
PHP 中的CURL 模拟表单的post提交
PHP 中的CURL 模拟表单的post提交
17 0
|
3月前
|
SQL PHP 数据库
PHP案例:每一个账号登陆后的操作是隔离的(使用token进行登录)
PHP案例:每一个账号登陆后的操作是隔离的(使用token进行登录)
PHP案例:每一个账号登陆后的操作是隔离的(使用token进行登录)
|
8月前
|
JSON PHP 数据格式
PHP curl方法封装
PHP curl方法封装
65 0
|
8月前
|
关系型数据库 MySQL PHP
PHP注册、登陆、6套主页-带Thinkphp目录解析-【白嫖项目】
PHP注册、登陆、6套主页-带Thinkphp目录解析-【白嫖项目】 CSDN 转过来的,所以格式与内容有些许错误请见谅
|
9月前
|
PHP
php函数file_get_contents无法获取到https链接内容问题使用curl的解决方案
php函数file_get_contents无法获取到https链接内容问题使用curl的解决方案
112 0
|
9月前
|
JSON API PHP
漏刻有时API接口实战开发系列(6):PHP开发API接口离不开的curl函数封装
漏刻有时API接口实战开发系列(6):PHP开发API接口离不开的curl函数封装
55 0
|
9月前
|
域名解析 网络协议 应用服务中间件
PHP CURL指定host内网通信
PHP CURL指定host内网通信
210 1
PHP CURL指定host内网通信