为什么别人不想回答你提的问题?

简介: 为什么别人不想回答你提的问题?

摄影:产品经理法餐里面的某某浓汤

虽然这个问题已经回答过无数次了,但是总有同学依然不会提问题,于是得不到解答。

这个问题提了一天也没有人给他解答。为什么?因为想回答的人无从下手。既不给具体描述,也不给代码,别人怎么回答?回答你“方法不对”?

在编程领域有一个俗话,叫做:

垃圾进,垃圾出。

你提的问题太宽泛,那么就不要怪别人回答得太宽泛。

如果你想让自己的问题得到解决,请遵循以下规则:

  1. 是程序报错,还是运行结果不符合预期?
  2. 如果是程序报错,报错信息截图截完整。代码带上行号,截图截完整。
  3. 如果是运行结果不符合预期,你期望的运行结果是什么?实际运行结果是什么?代码带上行号截图截完整。
  4. 对这个问题,你自己做了什么探索?
  5. 电脑是什么系统?编程语言是什么版本?是自己的代码报错还是其他地方报错?

以上面图中的问题为例。提问者觉得大众点评检测到了自己的 IP。那么问题来了,你怎么知道自己的 IP 被检测到了?是因为爬虫被屏蔽了从而推测出 IP 被检测了?还是通过其他什么原因确定是 IP 被检测了?

如果是因为爬虫被屏蔽了,那么原因有很多,可能是你请求的时候没有带上 Headers,这样即使有代理 IP,也是来一个封一个。也有可能是请求参数里面有签名,签名跟参数、当前时间戳有关,每次请求都会变。签名不对立刻屏蔽。总之,网站有很多办法检测你的请求是不是爬虫发起的,不能因为加了代理还是被屏蔽,就反推出网站检测到了你的真实 IP。

如果确实有某种方法确定了自己的真实 IP 被检测到了,那么,你这个代理 IP 是怎么来的?是透明代理还是高匿代理?如果是透明 IP,确实本机 IP 会公布给网站。如果是高匿IP,那么你要看你的代码是不是正确配置了这个IP。举个例子:

proxy = 'http://123.45.67.89:6677'
resp = requests.get('https://xxx.com/abc/def', headers=headers, proxies={'http': proxy})

这种写法,自以为配置了代理 IP,但实际上并没有使用。因为参数proxies的值这个字典里面,只有一个 Key: http,所以代理只会对 HTTP 网址生效。对于HTTPS的网址,依然使用的是本机 IP,所以就会营造出一种用了代理还是被探测到本机 IP 的错觉。但实际上对 HTTPS 的网址来说,你根本就没有用代理。proxies的值应该写为:

{'http': proxy, 'https': proxy}

提问者一张嘴,回答者跑断腿,你就一句话提问,回答者打字要给你打10分钟,凭什么?

还有的人,确实给出了代码,但直接把整个代码字符串复制粘贴到了微信群聊天里面。你代码几十行就这么粘贴上来,直接把整个聊天窗口都清屏了。你倒是轻松,鼠标选中,复制,粘贴,一气呵成不到3秒钟。解答你问题的人得滑动好几屏才能看到代码开头的位置。谁还有耐心给你看下去?

遇到一个心情好的人愿意看你的文字代码,并且也找到了代码的问题在哪里。现在他想回答你的问题,那么他怎么告诉你有问题的地方在第几行?

手机上写代码本来就不方便,括号引号打起来很麻烦。

如果你直接对代码进行截图,带上行号,那么回答问题的人直接告诉你第几行就可以了。

还有的人,给报错信息截图,就截一行。你多截几行会被收流量费吗?Python 的报错信息是从上往下写的。一般最上面是你的代码,最下面是真正报错的地方。这个真正报错的地方,可能是你的代码,也可能是 Python 自带的库或者第三方库的报错代码。把报错信息截图截完整有那么难吗?

还有的人,不知道从 CSDN 上哪个装逼货的烂博客里复制了几行代码,运行报错了,然后跑来问。这代码一看就是奇奇怪怪的炫技代码。用些狗屁不通的混账逻辑把原本十几行的代码缩减成一行。这运行一报错,根本没法知道哪里有问题。

后来我们形成了统一的认识:如果出问题的代码来自 CSDN,那么一律不解答。

总结:是你提问请求别人回答。你应该给回答者提供一个能方便指出问题,方便分析问题的环境。

如果你期望提问的时候只言片语,然后让答者主动跟你交互,主动找你确认问题是什么、还要找反复确认细节。那么只有两种情况:回答问题的人是你爹。或者回答你这个问题有钱拿。

目录
相关文章
N..
|
JavaScript 前端开发 UED
jQuery动画特效
jQuery动画特效
N..
174 1
|
网络协议 前端开发 JavaScript
我的周刊(第043期)
我的周刊(第043期)
|
11月前
|
SQL
开发指南057-执行SQL返回结果集
业务实践中除了返回实体类外,经常需要通过SQL语句返回结果集
|
消息中间件 负载均衡 监控
分布式系列教程(08) -分布式协调工具Zookeeper(介绍&安装&配置详解)
分布式系列教程(08) -分布式协调工具Zookeeper(介绍&安装&配置详解)
540 0
|
搜索推荐 算法 C++
蓝桥杯分糖果、最小化战斗力差距、小蓝零花钱
这是一个关于算法问题的集合,包括三个不同的任务: 1. **分糖果**:肖恩有不同种类的糖果要分给学生,目标是使得到糖果字符串的字典序最大且尽量小。给定糖果种类数和一个初始字符串,输出能达到的最小字典序的最大值。 2. **最小化战斗力差距**:小蓝需要将队员分为两组,每组战斗力差距最小。给定队员数量和战斗力值,找出最小的战斗力差距。 3. **小蓝的零花钱**:小蓝要在序列中分割偶数和奇数,每次分割代价是两端元素差的绝对值。目标是在预算内确定最多能进行多少次这样的分割。 每个问题都提供了输入输出示例和相应的C++代码片段来解决这些问题。
|
Go 调度
工作用Go: 异步任务怎么写1 | Go协程与异步
工作用Go: 异步任务怎么写1 | Go协程与异步
683 0
工作用Go: 异步任务怎么写1 | Go协程与异步
|
IDE Linux 开发工具
VMware虚拟机安装Linux系统的介绍
许多新手连 Windows 的安装都不太熟悉,更别提 Linux 的安装了;即使安装成功了,也有可能破坏现有的 Windows 系统,比如导致硬盘数据丢失、Windows 无法开机等。所以一直以来,安装 Linux 系统都是初学者的噩梦。 然而,通过虚拟机技术很容易冲破这种困境。由于虚拟机安装 Linux 所有的操作(例如硬盘分区、删除或修改数据)都是在虚拟硬盘中进行,因此不会对现有的数据和系统造成任何损失,即使安装失败了也无所谓。 所谓虚拟机(virtual machine),就是通过软件技术虚拟出来的一台计算机,它在使用层面和真实的计算机并没有什么区别。 常见的虚拟机软件有 VMwa
255 0
|
机器学习/深度学习 编解码 人工智能
|
应用服务中间件 Apache 开发工具
|
XML 存储 SQL
【Java面试】序列化
【Java面试】序列化
165 0