鱼C论坛

 找回密码
 立即注册
查看: 2006|回复: 7

[已解决]爬虫POST请求Json格式不清楚报错原因

[复制链接]
发表于 2021-1-5 01:09:14 | 显示全部楼层 |阅读模式

马上注册,结交更多好友,享用更多功能^_^

您需要 登录 才可以下载或查看,没有账号?立即注册

x
#coding:utf-8
import requests
import json



result = {}

url1 = "http://222.134.9.172:8080"
postreq = "/ajaxpro/Com.BC863.Web.ClassifySearch,App_Web_classifysearch.aspx.cdcab7d2.ashx "
url = url1 + postreq
    
headers = {
            "User-Agent": "Mozilla/5.0 (Windows NT 6.2; WOW64; rv:18.0) Gecko/20100101 Firefox/18.0",
        }

payload='{"page":1 ,"isrig":false,"key": "bkname", "word": "1"}'

resp1 = requests.post(url,data=json.dumps(payload),headers=headers)

print(resp1.json())


提示信息:
Traceback (most recent call last):
  File "C:\Users\二农戏猪\Desktop\1.py", line 21, in <module>
    print(resp1.json())
  File "D:\python\lib\site-packages\requests\models.py", line 898, in json
    return complexjson.loads(self.text, **kwargs)
  File "D:\python\lib\json\__init__.py", line 357, in loads
    return _default_decoder.decode(s)
  File "D:\python\lib\json\decoder.py", line 337, in decode
    obj, end = self.raw_decode(s, idx=_w(s, 0).end())
  File "D:\python\lib\json\decoder.py", line 355, in raw_decode
    raise JSONDecodeError("Expecting value", s, err.value) from None
json.decoder.JSONDecodeError: Expecting value: line 1 column 1 (char 0)


是我的json格式不对嘛
最佳答案
2021-1-5 18:23:26
本帖最后由 YunGuo 于 2021-1-5 18:29 编辑

少了必须参数,还有传参错误,这样写就行了。
import requests
import json

url = 'http://222.134.9.172:8080/ajaxpro/Com.BC863.Web.ClassifySearch,App_Web_classifysearch.aspx.cdcab7d2.ashx'
headers = {
    'User-Agent': 'Mozilla/5.0 (Windows NT 10.0; Win64; x64) AppleWebKit/537.36 '
                  '(KHTML, like Gecko) Chrome/87.0.4280.88 Safari/537.36',
    'X-AjaxPro-Method': 'BookBand'
}
data = {
    'page': 1,
    'isrig': False,
    'key': '',
    'word': ''
}
res = requests.post(url, headers=headers, data=json.dumps(data))
print(res.json())
想知道小甲鱼最近在做啥?请访问 -> ilovefishc.com
回复

使用道具 举报

发表于 2021-1-5 08:54:00 From FishC Mobile | 显示全部楼层
这是内网网址??
想知道小甲鱼最近在做啥?请访问 -> ilovefishc.com
回复 支持 反对

使用道具 举报

发表于 2021-1-5 09:16:53 | 显示全部楼层
说说你想干嘛吧
你的网址 我输入到浏览器 得到的是这个东东   啥东东  看不懂的东东

if(typeof Com == "undefined") Com={};
if(typeof Com.BC863 == "undefined") Com.BC863={};
if(typeof Com.BC863.Web == "undefined") Com.BC863.Web={};
Com.BC863.Web.ClassifySearch_class = function() {};
Object.extend(Com.BC863.Web.ClassifySearch_class.prototype, Object.extend(new AjaxPro.AjaxClass(), {
        BookBand: function(page, isrig, key, word) {
                return this.invoke("BookBand", {"page":page, "isrig":isrig, "key":key, "word":word}, this.BookBand.getArguments().slice(4));
        },
        SearchByZhongTu: function(page, nodeid, isrig, key, word) {
                return this.invoke("SearchByZhongTu", {"page":page, "nodeid":nodeid, "isrig":isrig, "key":key, "word":word}, this.SearchByZhongTu.getArguments().slice(5));
        },
        SearchByPlace: function(page, placeid, isrig, key, word) {
                return this.invoke("SearchByPlace", {"page":page, "placeid":placeid, "isrig":isrig, "key":key, "word":word}, this.SearchByPlace.getArguments().slice(5));
        },
        SearchByClass: function(page, dcglid, isrig, key, word) {
                return this.invoke("SearchByClass", {"page":page, "dcglid":dcglid, "isrig":isrig, "key":key, "word":word}, this.SearchByClass.getArguments().slice(5));
        },
        url: '/ajaxpro/Com.BC863.Web.ClassifySearch,App_Web_classifysearch.aspx.cdcab7d2.ashx'
}));
Com.BC863.Web.ClassifySearch = new Com.BC863.Web.ClassifySearch_class();
想知道小甲鱼最近在做啥?请访问 -> ilovefishc.com
回复 支持 反对

使用道具 举报

 楼主| 发表于 2021-1-5 12:15:33 | 显示全部楼层
wp231957 发表于 2021-1-5 09:16
说说你想干嘛吧
你的网址 我输入到浏览器 得到的是这个东东   啥东东  看不懂的东东

它的post请求包是一个json格式的
POST /ajaxpro/Com.BC863.Web.ClassifySearch,App_Web_classifysearch.aspx.cdcab7d2.ashx
host:http://222.134.9.172:8080

{"page":1 ,"isrig":false,"key": "bkname", "word": "1"}

大概就是一个这样的数据包
想知道小甲鱼最近在做啥?请访问 -> ilovefishc.com
回复 支持 反对

使用道具 举报

发表于 2021-1-5 12:17:43 | 显示全部楼层
1.URL 多一个空格,访问的时候提示资源不存在。
Screenshot 2021-01-05 121355.jpg
2.去掉URL里的空格后,访问成功,但是response内容为空,估计你得核实一下参数或URL,或者服务器端的设置。
Screenshot 2021-01-05 121524.jpg
想知道小甲鱼最近在做啥?请访问 -> ilovefishc.com
回复 支持 反对

使用道具 举报

 楼主| 发表于 2021-1-5 12:29:54 | 显示全部楼层
suchocolate 发表于 2021-1-5 12:17
1.URL 多一个空格,访问的时候提示资源不存在。

2.去掉URL里的空格后,访问成功,但是response内容为空 ...

POST /ajaxpro/Com. BC863. Web. Classi fySearch, App_ Web_ _classi fysearch. aspx. cdcab7d2. ashx HTTP/1. 1
Host: 123. 178. 167. 102:8000
User- -Agent: Mozilla/5. 0 (Windows NT 6.3; Win64; x64; rv:84. 0) Gecko/20100101 Firefox/84. 0
Accept: */*
Accept -Language: zh-CN, zh;q=0. 8, zh-TW;q=0. 7, zh-HK;q=0. 5, en-US;q=0. 3, en;q=0. 2
Content- Type: text/plain; charset=utf-8
X-AjaxPro-Method: BookBand
Content Length: 50
Connection: close
{”page" :1,”isrig" :false, "key":’bkname*", "word" :"1"}

这是那个请求包
想知道小甲鱼最近在做啥?请访问 -> ilovefishc.com
回复 支持 反对

使用道具 举报

发表于 2021-1-5 13:14:09 | 显示全部楼层
二农戏猪` 发表于 2021-1-5 12:29
POST /ajaxpro/Com. BC863. Web. Classi fySearch, App_ Web_ _classi fysearch. aspx. cdcab7d2. ashx H ...

请求包是请求包,response是response,这个网站及时提交了data也没有response。
想知道小甲鱼最近在做啥?请访问 -> ilovefishc.com
回复 支持 反对

使用道具 举报

发表于 2021-1-5 18:23:26 | 显示全部楼层    本楼为最佳答案   
本帖最后由 YunGuo 于 2021-1-5 18:29 编辑

少了必须参数,还有传参错误,这样写就行了。
import requests
import json

url = 'http://222.134.9.172:8080/ajaxpro/Com.BC863.Web.ClassifySearch,App_Web_classifysearch.aspx.cdcab7d2.ashx'
headers = {
    'User-Agent': 'Mozilla/5.0 (Windows NT 10.0; Win64; x64) AppleWebKit/537.36 '
                  '(KHTML, like Gecko) Chrome/87.0.4280.88 Safari/537.36',
    'X-AjaxPro-Method': 'BookBand'
}
data = {
    'page': 1,
    'isrig': False,
    'key': '',
    'word': ''
}
res = requests.post(url, headers=headers, data=json.dumps(data))
print(res.json())
想知道小甲鱼最近在做啥?请访问 -> ilovefishc.com
回复 支持 反对

使用道具 举报

您需要登录后才可以回帖 登录 | 立即注册

本版积分规则

小黑屋|手机版|Archiver|鱼C工作室 ( 粤ICP备18085999号-1 | 粤公网安备 44051102000585号)

GMT+8, 2025-1-16 20:12

Powered by Discuz! X3.4

© 2001-2023 Discuz! Team.

快速回复 返回顶部 返回列表