专栏首页未闻Code为什么别人不想回答你提的问题?

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

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

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

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

“垃圾进,垃圾出。 ”

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

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

  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,那么一律不解答。

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

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

本文分享自微信公众号 - 未闻Code(itskingname),作者:kingname

原文出处及转载信息见文内详细说明,如有侵权,请联系 yunjia_community@tencent.com 删除。

原始发表时间:2020-10-10

本文参与腾讯云自媒体分享计划,欢迎正在阅读的你也加入,一起分享。

我来说两句

0 条评论
登录 后参与评论

相关文章

  • 一日一技:负长整数如何转换为IPv4地址?

    今天来说说,如何把负的长整数转换为IP地址,例如: -986913820转换为IP地址,为: 197.44.227.228

    青南
  • 一日一技:在Python里面判断多个变量全部/任意不为空

    我们在写Python 函数的时候,可能会需要判断传入的多个参数是否同时为空/None/False,或者是否有任何一个不为空/None/False。可能有人会这样...

    青南
  • 一日一技:如何防止 Homebrew 自动升级和自动清理过期程序

    就是这个智障提的建议:`brew cleanup` should be run automatically · Issue #4760 · Homebrew/b...

    青南
  • 【一起玩蛇】那些漏洞扫描器中的资产处理

    aerfa
  • Java Web技术经验总结(十六)

    阿杜
  • mysql 读写分离altas

    1、altas2.2.1,只能安装在64位系统上 2、1台管理机,2台DB,1主1从。配置主从同步 3、主从配置管理机登录账号 GRANT ALL ON ...

    用户5760343
  • Linux网络相关配置文件

    这个文件是记录构建在TCP/IP上面的各种协议,包括HTTP、FTP、SSH、Telnet等服务所定义的端口号,如果你需要自定义一个新的协议与port相对应,就...

    砸漏
  • 浏览器 DOM 元素的事件代理指的是什么

    在网页中,如果想与使用者进行“互动”,必须要通过某种方法知道他都做了什么。当然,浏览器开发者们早已根据 W3C 事件规范[1]实现好了底层的逻辑,我们只需要通过...

    疯狂的技术宅
  • Linux基础(网络配置)

    Ubuntu是一个依赖于网络的系统,没有网何止我们活不了,他也活不下去。那在虚拟机里的Ubuntu要是连不上网了,该怎么办呢?

    用户2617681
  • 一篇文章说清楚 Linux 应急响应技巧

    Linux环境下处理应急响应事件往往会更加的棘手,因为相比于Windows,Linux没有像Autorun、procexp这样的应急响应利器,也没有统一的应急响...

    lyb-geek

扫码关注云+社区

领取腾讯云代金券