PY 新手向各位请教一个问题, 目前的情况: 1、在本地进行 POST 操作,状态返回 503,失败; 2、在云主机运行同样操作,状态成功,取回所需数据; 3、在本地浏览器中直接输入 url 以及参数,状态成功,取回所需数据; 已经排除了 cookie, headers, user-agent 方面的问题
我的问题是: 1、如果网站是以 ip 作为返回 503 的依据,是不是本地浏览器网页中也一定会 503 ? 2、如果不是第 1 种问题的话,还有什么会使得我在本地运行代码会 503 呢?
提前谢谢大家。
headers = {'Host': 'www.creditchina.gov.cn',
'Content-Length': '119',
'X-Requested-With': 'XMLHttpRequest',
'User-Agent': "Mozilla/5.0 (Macintosh; Intel Mac OS X 10_10_1) AppleWebKit/537.36 (KHTML, like Gecko) Chrome/41.0.2227.1 Safari/537.36",
'DNT': '1',
'Cache-Control': 'max-age=0'
}
payload = {'t': '1506062526183',
'keyword': '光大',
'searchtype': '0',
'objectType': '2',
'areas': '',
'creditType': '',
'dataType': '1',
'areaCode': '',
'templateId': '',
'exact': '0',
'page': '1'
}
result = requests.post('http://www.creditchina.gov.cn/credit_info_search?', headers=headers, params=payload)
以上是代码,get版的完整url是http://www.creditchina.gov.cn/credit_info_search?t=1506062526183&keyword=%E5%85%89%E5%A4%A7&searchtype=0&objectType=2&areas=&creditType=&dataType=1&areaCode=&templateId=&exact=0&page=1
很奇怪,回到家运行代码还是503,囧....实在搞不清哪里有问题...
1
954880786 2017-09-22 19:30:29 +08:00 via iPhone
你是不是爬多了自己的 ip 被网站 ban 了
|
2
wjm2038 2017-09-22 19:33:29 +08:00 via Android
顺便确定是 post 不是 get 么。。。
|
3
sidkang OP @954880786 我也有这个疑问,但是我确实可以网页打开链接,就比较纳闷,难道还可以针对某个 IP 区分 post 和 get 么,只屏蔽 post,不屏蔽 get.....
|
5
ik 2017-09-22 22:22:16 +08:00 via iPhone
楼主先交代一下是不是使用的 N 级运营商的那种野宽带?
说一个自己的经历,野宽带,到处流量穿透那种,访问线上接口(这个接口提供 http 方式访问,也可以使用 java 的一些方法调用[可能没说清楚,反正不是 http 方式调用,我只是个小运维而已。。。]),http 方式和 java 调用显示的来源地址只在同一个 C 段,但不一样。 并不是出口 IP 随机,而是同一种访问方式,出口 IP 是一样的… 我也不知道描述清楚了没有 |
6
ik 2017-09-22 22:23:18 +08:00 via iPhone
上面的理论 + 1L 的说法
|
7
misaka20038numbe 2017-09-22 22:26:30 +08:00
有些网站不允许同时有 get 和 post,有些网站需要 https
|
8
sidkang OP @ik 宽带应该没问题啊,电信联通的,况且回到家也没问题....
@misaka20038numbe 这个网站倒是没上 https,http://www.creditchina.gov.cn/home 我想做的应该就是模拟“搜索一下”这个按钮的事情吧,抓下来应该是 POST 的动作啊.. |
10
zhengjian 2017-09-23 01:27:30 +08:00 1
```
import requests headers = { 'User-Agent': 'Mozilla/5.0 (Macintosh; Intel Mac OS X 10_12_5) AppleWebKit/537.36 (KHTML, like Gecko) Chrome/61.0.3163.91 Safari/537.36', } params = ( ('keyword', '光大'), ) r = requests.get('http://www.creditchina.gov.cn/credit_info_search', headers=headers, params=params) print(r.json()) ``` |
12
regicide 2017-09-23 08:48:06 +08:00 via iPhone
别抓信用中国了 数据不全漏的也厉害
|
13
kltt22 2017-09-23 09:58:20 +08:00
'Content-Length': '119'这个不该是算出来的吗?
|