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); //保存抓取的页面内容
相关文章
|
JSON PHP 数据格式
PHP curl方法封装
PHP curl方法封装
297 0
|
12月前
|
数据采集 JavaScript 网络安全
为什么PHP爬虫抓取失败?解析cURL常见错误原因
豆瓣电影评分是电影市场的重要参考,通过网络爬虫技术可以高效采集评分数据,帮助电影制作和发行方优化策略。本文介绍使用PHP cURL库和代理IP技术抓取豆瓣电影评分的方法,解决反爬机制、网络设置和数据解析等问题,提供详细代码示例和优化建议。
443 0
为什么PHP爬虫抓取失败?解析cURL常见错误原因
|
PHP
php使用curl新增微信临时素材(上传图片)
php使用curl新增微信临时素材(上传图片)
421 4
|
JSON PHP 数据格式
蓝易云 - PHP用CURL发送Content-type为application/json的POST请求方法
在这段代码中,我们首先创建了一个包含我们要发送的数据的数组,并使用 `json_encode`函数将其转换为JSON格式。然后,我们初始化了一个cURL会话,并设置了一些选项,包括POST请求方法、要发送的数据、返回结果和HTTP头部信息。最后,我们执行了cURL请求并关闭了会话。
570 2
|
缓存 前端开发 小程序
uni-app结合PHP实现单用户登陆
一般APP做单用户登陆会使用第三方消息推送平台,虽然uni-app虽然也可以对接友盟,极光等推送平台。但还是因为时间,对接平台审核等流程时间不允许。之前使用gatewayworkman和websocket做了即时聊天,所以单用户登陆也使用websocket实现。
127 0
|
Web App开发 API PHP
PHP封装的不错的一个Curl方法
This is a PHP function named `teacher_curl` that wraps around the cURL library for making HTTP requests. The function initializes a cURL session, sets various options such as disabling SSL verification, sets headers, handles POST data
233 0
|
网络协议 Linux API
php curl执行太慢解决
网站访问快速,但API接口由curl_exec调用时遭遇显著延迟。问题根源在于DNS配置不当。切换至常用DNS,如114.114.114.114,立即提升了接口响应速度。
369 0
|
PHP
php curl获取cookie
php curl获取cookie
153 0
PHP案例:每一个账号登陆后的操作是隔离的(使用token进行登录)
PHP案例:每一个账号登陆后的操作是隔离的(使用token进行登录)
PHP案例:每一个账号登陆后的操作是隔离的(使用token进行登录)