有时候我们需要爬一个接口,但是这个接口需要很多参数,包括header和cookie要去编写,使用php curl模拟实在太慢。我们可以通过浏览器的network来复制请求为curl命令。
例如我需要模拟请求接口地址:https://www.xkmz.cc/Ajax/Debug/delly,我们只需要在谷歌浏览器的network下找到对应的接口请求,鼠标右键选择Copy => Copy as curl,即可将这个请求复制为curl请求命令。
特别提示,这里的Copy as curl (cmd)和 Copy as curl (bash)分别代表win和linux的curl命令,通常我建议大家用火狐浏览器来生成curl命令,更加标准,火狐生成的命令默认就是当前系统的命令。
生成的curl命令是100%完全真正模拟的请求,建议在命令行执行测试。
例如我生成的curl命令为:
curl 'https://www.xkmz.cc/Ajax/Debug/delly' -H 'sec-fetch-mode: cors' -H 'origin: https://www.xkmz.cc' -H 'accept-encoding: gzip, deflate, br' -H 'accept-language: zh-CN,zh;q=0.9' -H 'x-requested-with: XMLHttpRequest' -H 'cookie: PHPSESSID=jtvij4ie3gho559iam07taecl7899; skey=4a2a5f7bd8553ad175ea25d6f17fd952; yd_cookie=fcb30e6d-df04-45f7fced012f024a614263ccb53b82b2402b; Hm_lvt_3588845f64e5333198c26237db9c4bb6=1568507975,1568508261,1568555167,1568989627; Hm_lpvt_3588845f64e5333198c26237db9c4bb6=1568989627; usertoken=08f29f86d028e51ad59f7c9c79a9ad0d' -H 'user-agent: Mozilla/5.0 (Windows NT 10.0; Win64; x64) AppleWebKit/537.36 (KHTML, like Gecko) Chrome/77.0.3865.75 Safari/537.36' -H 'content-type: application/x-www-form-urlencoded; charset=UTF-8' -H 'accept: text/html, */*; q=0.01' -H 'referer: https://www.xkmz.cc/User/qqset/qid/178397.html' -H 'authority: www.xkmz.cc' -H 'sec-fetch-site: same-origin' --data 'qid=178397&id=418693&n=2' --compressed
然后通过开源工具将curl命令转换为php代码,开源工具地址:https://github.com/incarnate/curl-to-php
先看看下面的代码:<?php session_start(); $_SESSION['username']='lucy'; ?>当我们请求访问上面的脚本,默认会在我们的客户端生成一个名为PHPSESSID的cookie,我这里的值是PHPSESSID=...
逛公众号文章看到文章"php实现事件监听与触发的方法,你用过吗?",我就好奇了,php又不是asp.net的webform,哪里来的服务端事件监听。于是学习了一波。先看下监听类:class Event { /** &nbs...
<?php $member = new class { public function getInfo() { ...
【一】.迭代器迭代是指反复执行一个过程,每执行一次叫做一次迭代。比如下面的代码就叫做迭代:1. <?php 2. $data = ['1', '2', &...
第一次听说端口复用是在mixphp最新版本中发现的,mixphp启动监听9501端口,现在作者说可以多开几个进程来执行mixphp,我心里想了下再启动不是会端口冲突嘛,但是却没有问题,于是下载mixphp的源码解读,原来是启动http服务器使用new Co\Http\Server('0.0....
由于workerman底层直接读取$_SERVER['argv']的命令行参数,没有提供独立的方法start/stop,而tp的命令行参数无法适配workerman,虽然thinkphp官方专门做了一个适配的版本,但是看了下评论问题挺多的。于是自己来搞一个.(1).在applicat...