请教一个 requests 的爬虫问题,同样的代码在本地和云主机上一个成功一个失败

2017-09-22 18:35:23 +08:00
 sidkang

PY 新手向各位请教一个问题, 目前的情况: 1、在本地进行 POST 操作,状态返回 503,失败; 2、在云主机运行同样操作,状态成功,取回所需数据; 3、在本地浏览器中直接输入 url 以及参数,状态成功,取回所需数据; 已经排除了 cookie, headers, user-agent 方面的问题

我的问题是: 1、如果网站是以 ip 作为返回 503 的依据,是不是本地浏览器网页中也一定会 503 ? 2、如果不是第 1 种问题的话,还有什么会使得我在本地运行代码会 503 呢?

提前谢谢大家。

2873 次点击
所在节点    Python
14 条回复
954880786
2017-09-22 19:30:29 +08:00
你是不是爬多了自己的 ip 被网站 ban 了
wjm2038
2017-09-22 19:33:29 +08:00
顺便确定是 post 不是 get 么。。。
sidkang
2017-09-22 21:58:23 +08:00
@954880786 我也有这个疑问,但是我确实可以网页打开链接,就比较纳闷,难道还可以针对某个 IP 区分 post 和 get 么,只屏蔽 post,不屏蔽 get.....
sidkang
2017-09-22 21:59:17 +08:00
@wjm2038 确认过了,晚些我把代码贴出来,囧
ik
2017-09-22 22:22:16 +08:00
楼主先交代一下是不是使用的 N 级运营商的那种野宽带?
说一个自己的经历,野宽带,到处流量穿透那种,访问线上接口(这个接口提供 http 方式访问,也可以使用 java 的一些方法调用[可能没说清楚,反正不是 http 方式调用,我只是个小运维而已。。。]),http 方式和 java 调用显示的来源地址只在同一个 C 段,但不一样。 并不是出口 IP 随机,而是同一种访问方式,出口 IP 是一样的…

我也不知道描述清楚了没有
ik
2017-09-22 22:23:18 +08:00
上面的理论 + 1L 的说法
misaka20038numbe
2017-09-22 22:26:30 +08:00
有些网站不允许同时有 get 和 post,有些网站需要 https
sidkang
2017-09-23 00:06:57 +08:00
@ik 宽带应该没问题啊,电信联通的,况且回到家也没问题....

@misaka20038numbe 这个网站倒是没上 https,http://www.creditchina.gov.cn/home 我想做的应该就是模拟“搜索一下”这个按钮的事情吧,抓下来应该是 POST 的动作啊..
sidkang
2017-09-23 00:08:02 +08:00
@ik 说错了,应该是回到家也不成功,是不是我直接应该试试 GET 加参数....
zhengjian
2017-09-23 01:27:30 +08:00
```
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())

```
sidkang
2017-09-23 02:00:53 +08:00
@zhengjian 泪流满面,原来 headers 加多了也会被屏蔽啊....
regicide
2017-09-23 08:48:06 +08:00
别抓信用中国了 数据不全漏的也厉害
kltt22
2017-09-23 09:58:20 +08:00
'Content-Length': '119'这个不该是算出来的吗?
sidkang
2017-09-23 10:37:29 +08:00
@regicide 光这一家确实不太够,就算是查漏补缺吧,正好也是从易到难练习爬虫...

这是一个专为移动设备优化的页面(即为了让你能够在 Google 搜索结果里秒开这个页面),如果你希望参与 V2EX 社区的讨论,你可以继续到 V2EX 上打开本讨论主题的完整版本。

https://www.v2ex.com/t/392905

V2EX 是创意工作者们的社区,是一个分享自己正在做的有趣事物、交流想法,可以遇见新朋友甚至新机会的地方。

V2EX is a community of developers, designers and creative people.

© 2021 V2EX