草庐IT

谈谈如何高效使用搜索引擎找到自己想要的内容

zorchp 2024-05-31 原文

tags: Tips

写在前面

最近有朋友问我如何快速找到一些编程问题的解决方案, 当然也包括搜索一些网络资源(如书籍等), 感觉自己用Google也有一段时间了, 可以好好总结一下然后回答这个问题了.

搜索引擎的话我现在肯定是只用Google的, 当然一些情况下我也会用bing(毕竟广告还是要少一些), 百度的话估计只用来找一些文库资源了(下载PPT模板), 除此之外好像没什么能用到百度的地方…

关于一些专业知识, 除了看课本, Wikipedia也是不错的选择, 虽然中文页面相对匮乏, 但是其内容的高质量和准确性以及精美的插图还是让人赞不绝口.

编程方面的问题, 主要还是通过Stack Overflow来查, 虽然有时候遇到的问题都是有10多年历史的老问题, 但是也不乏很多热心的开发者给出自己的见解和方案, 并且你遇到的99.99%的问题在这上面都有人遇到过, 只是环境/平台等会有所出入而已. 除此之外, GitHubissue也是一个不错的选择, 通过issue能看到很多热门开源项目中别人遇到的问题, 以及开发者给出的解决方法, 适合一些活跃的开源项目.

资源方面, 其实还是术业有专攻, 因为Google对版权很重视(谷歌图书!?), 想在上面搜盗版其实并不容易, 还是通过一些其他专用网站来搜索要好点.

下面从选择搜索引擎/关键词搜索/常用资源查找等几个方面具体讲一下. 并且给出一些镜像替代网站, 希望能对大家有所帮助.

选择搜索引擎

这里给出两种, 分为中文和英文搜索, 一般来说编程问题还是通过英文搜索要准确很多, 但是前提是你要知道这些问题的正确英文表达, 建议还是通过Wikipedia先了解一下英文名词的表达, 然后再搜索会得到更贴切的回答.

中文

中文的话其实Bing和google都可, 内容以及准确性上, 只要你关键词到位了, 加上一些搜索技巧(后面说), 就能快速找到你要的内容了. (最好别看百度百科, 有的会有问题, 然后讨论区提了之后都没人管理, 建议看Wikipedia)

但是用Google可能会找到很多爬虫网站, 这里的爬虫网站指的是通过爬取别人文章构成的网站, 我的文章就有很多被爬取了…

不管怎么说, 只要你用中文搜索编程问题, 无外乎这么几种网站:

  • CSDN
  • 博客园
  • 知乎
  • 简书
  • 个人GitHub站点
  • 51CTO
  • 华为云,腾讯云,等一众搬运网站…

而且里面的内容也是天下文章一大抄, 质量很高的内容有但是较少. 当然, 这些网站对于我这样的编程新手还是很友好的, 因为去RTFM(Read the F**k ManPage)实在是让人难受, 而一篇简短的博客却能快速得到你想要的答案, (主要还是因为知识没有成体系地学下去, 不过话又说回来, 谁能记住那么多奇奇怪怪的命令? 不都是找文档吗)

英文

搜索引擎当然首推Google, 或者用duckduckgo也可(据说隐私保护比较好), 前提是有插件或者别的一些方法, 国内其实是有镜像站的, 这里列出几个:(可能会有挂掉的, 可以从网上查找最新网址)

  1. Google Public DNS;
  2. Google diversified search information - g.vovososo.com;
  3. Google (dhobi.win);
  4. Google (googe.fun);

只不过搜索到的部分内容无法点击访问, 例如维基官网, 下面也给出几个维基的镜像站:

  1. 维基百科,自由的百科全书 - Baike 中文百科 - DUHOC.CN;
  2. 维基百科,自由的百科全书 (wmmirror.live);

搜索技巧

以下内容建议大家上手尝试一下, 还是很好玩的!

这里参考了谷歌官方support页面1, 博客2, 文章3.

特殊符号

一些特殊符号在Google搜索中十分重要, 因为其具有的特殊含义可能导致搜索结果并不是你想要的, 特别是编程语言中的一些符号(尤其是weird Shell)

  • ★ \bigstar 搜索完全匹配的结果: "<内容>"双引号(英文标点)括起来的内容是搜索结果必须包含的, 如"最高的建筑".
  • ★ \bigstar 从搜索结果中排除特定字词: 在要排除的字词前加上 -。例如:中国美食 -麻辣.
  • 搜索社交媒体: 在字词前加上 @ 可用于搜索社交媒体。例如:@twitter
  • 搜索特定价格: 在表示价格的数字前加上 $。例如:相机 $400
  • 搜索 # 标签: 在字词前加上 #。例如:#怀旧星期四
  • 同义词搜索: 在关键词前面加上~, 例如: 浙江 ~学院.
  • ★ \bigstar 通配符搜索: 用*表示任意字符, 例如: 鸡飞*跳, 就会得到鸡飞狗跳.

特殊关键词

注意含有冒号的项, 在冒号两边均没有空格, 如果加上空格则指定的搜索模式无效.

  • 在某个数字范围内执行搜索: 在两个数字之间加上 ..。例如:相机$50..100
  • ★ \bigstar 组合搜索: 在各个搜索查询字词之间加上OR。例如:马拉松 OR 比赛
  • 搜索特定网站: 在网站或网站域名前加上site:。例如:site:youtube.comsite:.gov
  • ★ \bigstar 搜索相关网站: 在已知网址前加上related:。例如:related:github.com, 将列出 Stack Overflow - Where Developers Learn, Share, & Build … https://stackoverflow.com (google.com)等网站.
  • 查看网站的 Google 缓存版本: 在网址前加上cache:, 例如cache:math.jlu.edu.cn可以直接跳转到吉大数院官网的缓存界面, 用于找到网站更新前的信息, 当然有的网站Google不会做快照或者快照较新, 此时可以通过Internet Archive: Wayback Machine完成.
  • 搜索网站链接中包含的指定关键字: inurl:, 例如inurl:zorchp可以搜到我的CSDN主页.
  • ★ \bigstar 搜索网站正文中包含的指定关键字: intext:, 例如intext:zorchp可以搜到我的博客, 当然也有爬虫爬到的…
  • 搜索网站标题中包含的指定关键字: intitle:, 例如intitle:zorchp可以搜索到我的博客和其他一些内容.
  • ★ ★ \bigstar\bigstar 搜索指定的文档类型: filetype:, 例如filetype:pdf C++并发编程实战可以搜索电子书/论文等资源, filetype:docx 开题报告模板可以搜索文档等.

搜索关键词

主要有几个情况:

  1. 编程遇到的bug;
  2. 软件安装的问题;
  3. 专业知识;(维基)

对于遇到的程序bug, 可以遵循下面的格式来搜索:(_代表空格, 括号中内容可选)

(平台)_语言_error名称_具体内容_(其他,如系统版本/语言版本/报错语句等)

例如Python报错IndentationError: unexpected indent, 就可以在google中输入:

Python IndentationError: unexpected indent

然后看排前几的Stack Overflow回答(或者其他小众网站给出的解决方案)就能解决你的问题了, 但是, 有时候也会出现一些比较复杂的情况, 比如C++模板编译出现的链式报错, 这样的错误一般来说可以先找到最先报错的内容, 进行搜索, 然后结合这些回答分析一下有哪些导致报错的原因. (遇到了就很头疼, 需要不断积攒经验)

有一些问题可能找不到合适的答案, 比如我前几天遇到的关于 C TeX \rm C\TeX CTEX的一个问题, 就没有解答, 但是可以通过精简报错信息来搜索, 例如:

CTEx Could not open OpenType/TrueType/dfont font file simsun.ttc

这时候其实是因为一些不重要的信息影响了搜索结果, 可以改成这样:

ctex simsum  opentype font

顺着这个思路就能找到你想要的内容了. (大多数情况下)

另外, 也需要删掉语言中自带的一些符号, 比如双引号, 不然结果会很少.

资源搜索

综合资源

还是建议网盘搜索, 这里给出一些:(之前很多都收费了)

电子书

以Google为例, 要搜索文档或电子书(一般是开源的), 可以通过指定文件类型来完成, 上面有提到过, 通过filetype:pdf的方式, 其他方法我之前写过, 可以看看我之前的文章. 下面是两个比较新的可以用的.

其他的之后想到了再补充, 感觉这篇文章内容也不少了, 大家可以多动手实践一下, 善用搜索, 互联网遍地都是宝.

ref


  1. 优化网页搜索结果 - Google 搜索帮助; ↩︎

  2. How to use search like a pro: 10 tips and tricks for Google and beyond | Google | The Guardian; ↩︎

  3. Google Advanced Search - Google Tools - Library Home at Fox Valley Technical College (fvtc.edu); ↩︎

有关谈谈如何高效使用搜索引擎找到自己想要的内容的更多相关文章

  1. ruby - 如何使用 Nokogiri 的 xpath 和 at_xpath 方法 - 2

    我正在学习如何使用Nokogiri,根据这段代码我遇到了一些问题:require'rubygems'require'mechanize'post_agent=WWW::Mechanize.newpost_page=post_agent.get('http://www.vbulletin.org/forum/showthread.php?t=230708')puts"\nabsolutepathwithtbodygivesnil"putspost_page.parser.xpath('/html/body/div/div/div/div/div/table/tbody/tr/td/div

  2. ruby - 如何从 ruby​​ 中的字符串运行任意对象方法? - 2

    总的来说,我对ruby​​还比较陌生,我正在为我正在创建的对象编写一些rspec测试用例。许多测试用例都非常基础,我只是想确保正确填充和返回值。我想知道是否有办法使用循环结构来执行此操作。不必为我要测试的每个方法都设置一个assertEquals。例如:describeitem,"TestingtheItem"doit"willhaveanullvaluetostart"doitem=Item.new#HereIcoulddotheitem.name.shouldbe_nil#thenIcoulddoitem.category.shouldbe_nilendend但我想要一些方法来使用

  3. ruby - 使用 RubyZip 生成 ZIP 文件时设置压缩级别 - 2

    我有一个Ruby程序,它使用rubyzip压缩XML文件的目录树。gem。我的问题是文件开始变得很重,我想提高压缩级别,因为压缩时间不是问题。我在rubyzipdocumentation中找不到一种为创建的ZIP文件指定压缩级别的方法。有人知道如何更改此设置吗?是否有另一个允许指定压缩级别的Ruby库? 最佳答案 这是我通过查看ruby​​zip内部创建的代码。level=Zlib::BEST_COMPRESSIONZip::ZipOutputStream.open(zip_file)do|zip|Dir.glob("**/*")d

  4. ruby - 为什么我可以在 Ruby 中使用 Object#send 访问私有(private)/ protected 方法? - 2

    类classAprivatedeffooputs:fooendpublicdefbarputs:barendprivatedefzimputs:zimendprotecteddefdibputs:dibendendA的实例a=A.new测试a.foorescueputs:faila.barrescueputs:faila.zimrescueputs:faila.dibrescueputs:faila.gazrescueputs:fail测试输出failbarfailfailfail.发送测试[:foo,:bar,:zim,:dib,:gaz].each{|m|a.send(m)resc

  5. ruby-on-rails - 使用 Ruby on Rails 进行自动化测试 - 最佳实践 - 2

    很好奇,就使用ruby​​onrails自动化单元测试而言,你们正在做什么?您是否创建了一个脚本来在cron中运行rake作业并将结果邮寄给您?git中的预提交Hook?只是手动调用?我完全理解测试,但想知道在错误发生之前捕获错误的最佳实践是什么。让我们理所当然地认为测试本身是完美无缺的,并且可以正常工作。下一步是什么以确保他们在正确的时间将可能有害的结果传达给您? 最佳答案 不确定您到底想听什么,但是有几个级别的自动代码库控制:在处理某项功能时,您可以使用类似autotest的内容获得关于哪些有效,哪些无效的即时反馈。要确保您的提

  6. ruby - 在 Ruby 中使用匿名模块 - 2

    假设我做了一个模块如下:m=Module.newdoclassCendend三个问题:除了对m的引用之外,还有什么方法可以访问C和m中的其他内容?我可以在创建匿名模块后为其命名吗(就像我输入“module...”一样)?如何在使用完匿名模块后将其删除,使其定义的常量不再存在? 最佳答案 三个答案:是的,使用ObjectSpace.此代码使c引用你的类(class)C不引用m:c=nilObjectSpace.each_object{|obj|c=objif(Class===objandobj.name=~/::C$/)}当然这取决于

  7. ruby - 使用 ruby​​ 和 savon 的 SOAP 服务 - 2

    我正在尝试使用ruby​​和Savon来使用网络服务。测试服务为http://www.webservicex.net/WS/WSDetails.aspx?WSID=9&CATID=2require'rubygems'require'savon'client=Savon::Client.new"http://www.webservicex.net/stockquote.asmx?WSDL"client.get_quotedo|soap|soap.body={:symbol=>"AAPL"}end返回SOAP异常。检查soap信封,在我看来soap请求没有正确的命名空间。任何人都可以建议我

  8. python - 如何使用 Ruby 或 Python 创建一系列高音调和低音调的蜂鸣声? - 2

    关闭。这个问题是opinion-based.它目前不接受答案。想要改进这个问题?更新问题,以便editingthispost可以用事实和引用来回答它.关闭4年前。Improvethisquestion我想在固定时间创建一系列低音和高音调的哔哔声。例如:在150毫秒时发出高音调的蜂鸣声在151毫秒时发出低音调的蜂鸣声200毫秒时发出低音调的蜂鸣声250毫秒的高音调蜂鸣声有没有办法在Ruby或Python中做到这一点?我真的不在乎输出编码是什么(.wav、.mp3、.ogg等等),但我确实想创建一个输出文件。

  9. ruby-on-rails - 如何验证 update_all 是否实际在 Rails 中更新 - 2

    给定这段代码defcreate@upgrades=User.update_all(["role=?","upgraded"],:id=>params[:upgrade])redirect_toadmin_upgrades_path,:notice=>"Successfullyupgradeduser."end我如何在该操作中实际验证它们是否已保存或未重定向到适当的页面和消息? 最佳答案 在Rails3中,update_all不返回任何有意义的信息,除了已更新的记录数(这可能取决于您的DBMS是否返回该信息)。http://ar.ru

  10. ruby-on-rails - 'compass watch' 是如何工作的/它是如何与 rails 一起使用的 - 2

    我在我的项目目录中完成了compasscreate.和compassinitrails。几个问题:我已将我的.sass文件放在public/stylesheets中。这是放置它们的正确位置吗?当我运行compasswatch时,它不会自动编译这些.sass文件。我必须手动指定文件:compasswatchpublic/stylesheets/myfile.sass等。如何让它自动运行?文件ie.css、print.css和screen.css已放在stylesheets/compiled。如何在编译后不让它们重新出现的情况下删除它们?我自己编译的.sass文件编译成compiled/t

随机推荐