-
Notifications
You must be signed in to change notification settings - Fork 71
请求规则
由简到难,有GET,GBK编码的GET,带特殊headers的GET,POST表单,POST JSON 字符串。POST带编码带headers,等几种写法。
GET和POST均分三小节,一共六小节,阐述分析过程和具体写法,提供八种形式,七种模板。
以百度搜索为例。通过网络使用百度搜索,就是一个基本的GET请求。
搜索数字 1
,链接为:
https://www.baidu.com/s?ie=UTF-8&wd=1
搜索数字 2
,链接为:
https://www.baidu.com/s?ie=UTF-8&wd=2
观察并使用$keyword
替换搜索关键词,得到:
(形式一)
https://www.baidu.com/s?ie=UTF-8&wd=$keyword
这就是在规则编写url输入框里可以填入的第一种形式,该写法不提供模板,windows实机运行如图:
以爱奇文学为例。他的搜索是一个带gbk编码的GET请求。搜索汉字 玄幻
,链接为:
http://www.iqiwx.com/modules/article/search.php?searchkey=%D0%FE%BB%C3&searchtype=articlename&page=1
可知玄幻
的编码是%D0%FE%BB%C3
,去掉百分号即D0FEBBC3
,数字节得1汉字对于2字节,这是GBK编码特征,
使用$keyword
替换搜索关键词,使用$page
替换页码位置,指定编码"encoding":"gbk"
,使用JSON写法如下:
(形式二)
{
"url": "http://www.iqiwx.com/modules/article/search.php?searchkey=$keyword&searchtype=articlename&page=$page",
"encoding": "gbk"
}
这就是在规则编写url输入框里可以填入的第二种形式。模板如下,windows实机运行如图:
(get-gbk模板其一)
{
"url": "/modules/article/search.php?searchkey=$keyword&searchtype=articlename&page=$page",
"encoding": "gbk"
}
如果需要携带请求头信息,则加上headers
,不举例,参考模板如下:
(形式三)
(get-headers模板其二)
{
"url": "/modules/article/search.php?searchkey=$keyword&searchtype=articlename&page=$page",
"headers":{
"Accept-Language": "zh-CN,zh;q=0.9,en;q=0.8,en-GB;q=0.7,en-US;q=0.6",
"User-Agent": "Mozilla/5.0 (Windows NT 10.0; Win64; x64) AppleWebKit/537.36 (KHTML, like Gecko) Chrome/84.0.4147.89 Safari/537.36 Edg/84.0.522.40"
}
}
再以爱奇文学为例,它的搜索比较特别,既可以GET也可以POST。按顺序执行如下步骤:
-
打开现代浏览器(chrome、edge、firefox等)
-
键入地址
http://www.iqiwx.com/
,回车打开 -
按下
F12
打开开发者工具,切换至网络
(或network
)面板。 -
搜索
玄幻
,开发者工具网络栏点击第一个请求,查看详情,如图。
这是一个POST请求,body是一个表单,表单有2种写法,APP中写入的规则与模板如下:
(形式四)
{
"url": "http://www.iqiwx.com/modules/article/search.php",
"method": "POST",
"body": "searchkey=$keyword&searchtype=articlename",
"headers": {
"Content-Type": "application/x-www-form-urlencoded"
}
}
(形式五)
{
"url": "http://www.iqiwx.com/modules/article/search.php",
"method": "POST",
"body": {
"searchkey": "$keyword",
"searchtype": "articlename"
}
}
(post-form1模板其三)
{
"url": "/modules/article/search.php",
"method": "POST",
"body": "searchkey=$keyword&searchtype=articlename",
"headers": {
"Content-Type": "application/x-www-form-urlencoded"
}
}
(post-form2模板其四)
{
"url": "/modules/article/search.php",
"method": "POST",
"body": {
"searchkey": "$keyword",
"searchtype": "articlename"
}
}
POST包含表单和JSON,不举例,参考模板如下:
(形式六)
(post-json模板其五)
{
"url": "/modules/article/search.php",
"method": "POST",
"body": "{\"searchkey\": \"$keyword\",\"searchtype\": \"articlename\"}",
"headers":{
"Content-Type": "application/json"
}
}
body转义过于麻烦,建议使用js自动格式化,注意keyword
是一个变量,写法如下:
(形式七)
(post-json-by-js模板其六)
@js:
({
"url": "/modules/article/search.php",
"method": "POST",
"body": JSON.stringify({
"searchkey": keyword,
"searchtype": "articlename"
}),
"headers":{
"Content-Type": "application/json"
}
})
可能需要带特殊请求头才可以获取正确响应,不举例,参考模板如下:
(形式八)
(post-headers模板其七)
{
"url": "/modules/article/search.php",
"method": "POST",
"body": "searchkey=$keyword&searchtype=articlename",
"headers": {
"Content-Type": "application/x-www-form-urlencoded",
"Accept-Language": "zh-CN,zh;q=0.9,en;q=0.8,en-GB;q=0.7,en-US;q=0.6",
"User-Agent": "Mozilla/5.0 (Windows NT 10.0; Win64; x64) AppleWebKit/537.36 (KHTML, like Gecko) Chrome/84.0.4147.89 Safari/537.36 Edg/84.0.522.40"
}
}
模板只是参考,要根据实际情况按需使用,所有写法都有js写法,不妨试试。
三 规则实战 持续增加
-
规则实战其一:知乎日报 已完成
-
规则实战其二:17K小说网 已完成
-
规则实战其四:起点中文网 已完成
-
规则实战其六:不可能的世界APP 已完成