php抓取网页json数据( 百度,用常规模拟登陆测试了下发现不行,)
优采云 发布时间: 2022-01-18 09:02php抓取网页json数据(
百度,用常规模拟登陆测试了下发现不行,)
php中curl模拟登录用户百度知道的例子
最近弄了个工具,希望能拿到我百度网盘里的数据,但是又不想泄露数据,所以想到了模拟登录百度。我用传统的模拟登录方式对其进行了测试,发现它无法正常工作。我只是在登录期间通过抓取数据才发现的。百度在登录过程中跳转了几个页面。如果只获取一个页面的cookie是不完整的,那么只有BAIDUID的值,只有这个cookie值影响不大。
通过抓包数据分析,在实际登录过程中,页面首先被请求一次,服务器同时为浏览器设置了两个cookie,一个cookie值为BAIDUID,应该和session id有关; 另一个是
设置 Cookie:
支持=1;到期=格林威治标准时间 2021 年 8 月 19 日星期四 15:41:37;路径=/; 域=; httponly
推测这应该是百度检测浏览器是否支持cookies;
再次请求页面,获取网页数据获取登录的token值;
然后登录成功会得到BDUSS和其他相关的cookie值。以上就是登录成功了,只记录上面的cookie!
下面是简单的请求和登录函数的集合。作为基础类,可能比较简单,后面我们会改进!
代码显示如下:
这只是一个基础类,只涉及登录和请求提交数据,可以在此基础上使用,比如请求百度云网盘,代码如下:
$baidu = new baidu('用户名','密码');
$data = $baidu->request('http://pan.baidu.com/api/list?channel=chunlei&clienttype=0&web=1&num=100&page=1&dir=%2F','http://pan.baidu.com');
echo $data;
也可以作为贴吧的发帖或百度空间更新工具。
教程地址:
欢迎转载!但请带上文章地址^^
/phpyy/47648.htmltrue/phpyy/47648.htmlTechArticlephp curl 模拟登录用户百度知道的例子 我最近做了一个工具,希望能得到我百度网盘里的数据但是我没有'不想泄露数据,于是想到了模拟登录百度,用常规的模拟登录测试了一下,发现不行,抢登录...