国产精品电影_久久视频免费_欧美日韩国产激情_成年人视频免费在线播放_日本久久亚洲电影_久久都是精品_66av99_九色精品美女在线_蜜臀a∨国产成人精品_冲田杏梨av在线_欧美精品在线一区二区三区_麻豆mv在线看

搜代碼,再也不用上谷歌復制粘貼了

開發 開發工具
先問大家一個問題,如果你擼代碼的過程中遇到了一個問題不知道怎么解決,你一般會怎么辦?

 先問大家一個問題,如果你擼代碼的過程中遇到了一個問題不知道怎么解決,你一般會怎么辦?

那當然是搜了,去哪里搜呢?

比如這里我就想知道 Python 里面怎么使用 requests 怎么上傳文件,我可能就直接 Google 一下,結果有很多,比如官方文檔,Stack Overflow 等等,然后一個個去查。

比如我可能就會輸入關鍵詞 python requests upload file,查到的結果類似如下:

“抄”代碼,再也不用上谷歌復制粘貼了

這里給我的第一個結果是 Stack Overflow,結果鏈接為 https://stackoverflow.com/questions/22567306/python-requests-file-upload,我把它點開,然后找到最高票的答案。

“抄”代碼,再也不用上谷歌復制粘貼了

這里最高票的答案如圖瑣事,然后把它的代碼 copy 下來試試看看,然后就跑通了。

不過似乎還是有一點麻煩的?開瀏覽器,開 Google 或 Stack Overflow,找最高票答案試試。

介紹

今天給大家介紹一個神器,叫做 howdoi,有了它,似乎我們就可以告別 Stack Overflow 了。

下面我們就先來看看 howdoi 能做點什么,安裝了之后,我們就能直接輸入這樣的命令,比如:

  1. howdoi python requests upload file 

它給我的返回結果就是這樣:

  1. files = {'upload_file': open('file.txt','rb')}values = {'DB''photcat''OUT''csv''SHORT''short'
  2. r = requests.post(url, files=files, data=values) 

比如我想搜 python 怎么發送 POST 請求,輸入這樣的命令:

  1. howdoi python requests post 

返回結果就是這樣:

  1. >>> importrequests>>> r = requests.post('http://httpbin.org/post', json={"key""value"})>>> r.status_code200>>> r.json{'args': {}, 'data''{"key": "value"}''files': {}, 'form': {}, 'headers': {'Accept''*/*''Accept-Encoding''gzip, deflate''Connection''close''Content-Length''16''Content-Type''application/json''Host''httpbin.org''User-Agent''python-requests/2.4.3 CPython/3.4.0''X-Request-Id''xx-xx-xx'}, 'json': {'key''value'}, 'origin''x.x.x.x''url''http://httpbin.org/post'

看起來還不錯對不對。

比如我想搜 Python 里面怎么把 timestamp 轉 datetime,輸入這樣的命令:

  1. howdoi python timestamp to datetime 

返回結果就是這樣:

  1. fromdatetimeimportdatetimets = int("1284101485"
  2. if you encounter a "year is out of range" error the timestamp# may be in milliseconds, try `ts /= 1000` in that caseprint(datetime.utcfromtimestamp(ts).strftime('%Y-%m-%d %H:%M:%S')) 

那 Java 它會嗎?試試看:

  1. howdoi java timestamp to datetime 

返回結果就是這樣:

  1. Timestampstamp =newTimestamp(System.currentTimeMillis);Datedate =newDate(stamp.getTime);System.out.println(date); 

有點牛逼啊,搜啥答案都有,準確率還蠻高。

以上是怎么實現的?沒錯,就是借助于 howdoi 這個項目。

howdoi

那么這個 howdoi 究竟是個什么?我們 GitHub 上就能找到,鏈接地址為:https://github.com/gleitz/howdoi。

看下簡介:

Are you a hack programmer? Do you find yourself constantly Googling for how to do basic programming tasks?

Suppose you want to know how to format a date in bash. Why open your browser and read through blogs (risking major distraction) when you can simply stay in the console and ask howdoi.

意思就是說,如果你想搜一些編程相關的解決方案,我們可以不用再去開瀏覽器,然后再去讀文檔或者博客,你可以通過 howdoi 就能直接得到答案。

操作就是上面我們講的。

howdoi 是一個 Python 項目,我們可以 pip 命令安裝:

  1. pip3 install howdoi 

如果是 Mac 的話,推薦使用 brew 來安裝:

  1. brew install howdoi 

安裝完了就能使用 howdoi 命令了。

完整用法如下:

  1. usage: howdoi.py [-h] [-p POS] [-a] [-l] [-c] [-j] [-n NUM_ANSWERS] [-C] [-v] [-e ENGINE] QUERY [QUERY ...] 
  2. instant coding answers via the command line 
  3. positional arguments: QUERY the question to answer 
  4. optional arguments: -h, --help show thishelp messageandexit -p POS, --pos POS selectanswerinspecified position (default:1) -a, --all display the full text of the answer -l, --link display only the answer link -c, --color enable colorized output -j, --json-output returnanswersinraw json format, to prettyprinttry'howdoi pretty print json command line' -n NUM_ANSWERS, --num-answers NUM_ANSWERS number of answers to return -C, --clear-cache clear the cache -v, --version displays the current version of howdoi -e ENGINE, --engine ENGINE change search engine forthisquery only.Currentlysupported engines: google (default), bing, duckduckgo. 

但一般來說就按照前文所演示的直接輸入問題就行了。

比如看看怎樣在 Python 中打印 traceback,這么搜:

  1. howdoi printstack trace python 

結果如下:

  1. importtraceback 
  2. try: raiseTypeError("Oups!")exceptException, err: try: raiseTypeError("Again !?!") except: pass 
  3.  traceback.print_exc 

不錯不錯。

原理

這時候大家可能就有疑問了,這到底是怎么實現的?為什么還能這么精準。

其實看下源碼就知道了,我們稍微扒下看看,其實源碼就都在這里了:https://github.com/gleitz/howdoi/blob/master/howdoi/howdoi.py。

先看看一上來定義了這么多:

  1. SUPPORTED_SEARCH_ENGINES = ('google''bing''duckduckgo'
  2. URL = os.getenv('HOWDOI_URL') or'stackoverflow.com' 
  3. USER_AGENTS = ('Mozilla/5.0 (Macintosh; Intel Mac OS X 10.7; rv:11.0) Gecko/20100101 Firefox/11.0''Mozilla/5.0 (X11; Ubuntu; Linux x86_64; rv:22.0) Gecko/20100 101 Firefox/22.0''Mozilla/5.0 (Windows NT 6.1; rv:11.0) Gecko/20100101 Firefox/11.0', ('Mozilla/5.0 (Macintosh; Intel Mac OS X 10_7_4) AppleWebKit/536.5 (KHTML, like Gecko) ' 'Chrome/19.0.1084.46 Safari/536.5'), ('Mozilla/5.0 (Windows; Windows NT 6.1) AppleWebKit/536.5 (KHTML, like Gecko) Chrome/19.0.1084.46' 'Safari/536.5'), )SEARCH_URLS = { 'bing': SCHEME + 'www.bing.com/search?q=site:{0}%20{1}&hl=en''google': SCHEME + 'www.google.com/search?q=site:{0}%20{1}&hl=en''duckduckgo': SCHEME + 'duckduckgo.com/?q=site:{0}%20{1}&t=hj&ia=web'
  4. 貌似我們就懂了什么,這些答案是從搜索引擎得來的。 

然后我們再扒一扒,又看到一個關鍵的 _get_result 方法,定義如下:

  1. def_get_result(url): try: returnhowdoi_session.get(url, headers={'User-Agent': _random_choice(USER_AGENTS)}, proxies=get_proxies, verify=VERIFY_SSL_CERTIFICATE).text exceptrequests.exceptions.SSLErrorase: _print_err('Encountered an SSL Error. Try using HTTP instead of ' 'HTTPS by setting the environment variable "HOWDOI_DISABLE_SSL".\n') raisee 

看到了吧,這里就是一次 requests 發起了 get 請求,那么這個 url 究竟是怎么來的呢?我們再順著找下調用 _get_result 方法的地方:

  1. def_get_links(query): search_engine = os.getenv('HOWDOI_SEARCH_ENGINE''google') search_url = _get_search_url(search_engine) 
  2.  result = _get_result(search_url.format(URL, url_quote(query))) if_is_blocked(result): _print_err('Unable to find an answer because the search engine temporarily blocked the request. Please wait a few minutes or select a different search engine.') raiseBlockError("Temporary block by search engine"
  3.  html = pq(result) return_extract_links(html, search_engine) 

這里就是 _get_links 方法調用了 _get_result 方法,就是 search_url 的格式化結果,傳入了 URL 還有 query,其中 search_url 是 _get_search_url 方法傳入了 search_engine,search_engine 是通過環境變量 HOWDOI_SEARCH_ENGINE 獲取的,默認是 google。

好,那順著再看看 _get_search_url 的實現,定義如下:

  1. def_get_search_url(search_engine): returnSEARCH_URLS.get(search_engine, SEARCH_URLS['google']) 

很明顯了,就是 SEARCH_URLS 里面定義的,所以最后,我們就可以得到如下的搜索 URL:

  1. www.google.com/search?q=site:stackoverflow.com%20{query}&hl=en 

這里 query 就是我們搜索的內容,比如搜索 print stack trace python,構造的 URL 就是:

  1. https://www.google.com/search?q=site:stackoverflow.com%20print%20stack%20trace%20python&hl=en 

我們訪問一下就是這樣的結果:

“抄”代碼,再也不用上谷歌復制粘貼了

其實這就是借助 Google 搜索了 Stack Overflow 的內容,搜索了 python 關鍵字的內容。

然后 howdoi 就是提取了其中的 TOP 答案,然后解析一下返回即可。

 

 

責任編輯:張燕妮 來源: 今日頭條
相關推薦

2012-07-03 15:04:22

程序員

2021-12-21 09:05:46

命令Linux敲錯

2025-12-01 06:20:00

Python運維腳本

2024-04-15 00:08:00

MySQLInnoDB數據庫

2020-04-30 10:45:14

IDEA代碼神器工具

2015-05-29 09:01:48

2021-06-08 07:48:26

數據 Python開發

2020-06-15 08:03:17

大文件OOM內存

2024-11-27 14:30:46

2018-07-03 13:17:00

2018-10-11 15:51:32

ChromeGoogle瀏覽器

2023-11-27 17:11:02

數據庫oracle

2019-07-23 09:08:43

Python操作系統高考

2020-10-23 12:01:03

機器學習技術C++

2024-01-26 07:00:11

Python工具無向圖

2023-12-21 09:00:00

開發并發編程

2020-12-18 08:23:16

安卓手機系統谷歌

2021-08-13 22:38:36

大數據互聯網技術

2023-07-29 22:02:06

MyBatis數據庫配置
點贊
收藏

51CTO技術棧公眾號

欧美精品在线视频观看| 图片区小说区国产精品视频| 按摩亚洲人久久| 黄色污污视频在线观看| 国产日韩欧美制服另类| 久久精品人人做| 成人美女av在线直播| 影音先锋另类| 久久综合资源网| 日韩av在线发布| 动漫美女被爆操久久久| 一区二区在线观看av| 婷婷在线视频观看| 日韩一区二区在线看片| av五月婷婷| 亚洲欧美日韩国产一区二区| 美国av在线播放| 美女视频第一区二区三区免费观看网站| 国自产精品手机在线观看视频| 免费大片在线观看www| 亚洲午夜日本在线观看| 亚洲欧洲精品一区二区三区波多野1战4 | 日本va欧美va瓶| 亚洲黄色成人网| 91欧美视频在线| 成人高清免费| 亚洲毛片av| 欧美日本韩国国产| 最新精品国偷自产在线| 欧美日韩一区二区不卡| 污污影院在线观看| 欧美日韩一级二级三级| 日韩av手机在线| 日本亚洲欧美天堂免费| 茄子视频成人在线| 亚洲欧洲国产精品一区| 精品中文视频在线| 男男做性免费视频网| 国产欧美日韩另类一区| 亚洲一级免费观看| 97色在线播放视频| 久久久加勒比| 欧美日韩一区二区在线观看| www.com毛片| 一区二区三区欧美日韩| 在线综合视频网站| 欧美福利在线| 亚洲精品国产电影| 色久视频在线播放| 色偷偷一区二区三区| 国产va在线| 色综合天天综合给合国产| eeuss影院在线观看| 精品久久久久久久久久久久久久久| ririsao久久精品一区| 亚洲免费视频网站| 国产成人一二片| 91免费精品视频| 日韩和的一区二区| 国产主播在线看| 婷婷夜色潮精品综合在线| 综合久久2o19| 九色精品免费永久在线| 成人激情开心网| 男女性激情视频在线观看| 成人一二三区视频| 91大神在线资源观看无广告| 天天色综合色| 2021av天天| 欧美午夜精品一区二区三区| 日本高清不卡aⅴ免费网站| 亚洲欧洲日产国产综合网| 国产香蕉视频在线看| 亚洲国产精品二十页| 在线视频手机国产| 精品少妇一区二区三区视频免付费| 亚洲精品国产嫩草在线观看| 国产精品扒开腿爽爽爽视频 | 欧美另类99xxxxx| 欧美色图麻豆| 丰满爆乳一区二区三区| 欧美日韩日日骚| 欧美理伦片在线播放| 精品国产免费久久久久久尖叫 | 成人高h视频在线| 国产精品一级在线| 美臀av在线| 久久精品国产欧美亚洲人人爽| 在线成人www免费观看视频| 男女高潮又爽又黄又无遮挡| 欧美日本精品一区二区三区| 高清日韩中文字幕| 亚洲欧美日韩精品综合在线观看| 亚洲人成在线观看一区二区| 一二三四视频在线中文| www.成人三级视频| 亚洲黄色免费电影| 亚洲欧美一级| 在线一区日本视频| 欧美日韩国产一二三| 欧美色就是色| 亚洲久久中文字幕| 日韩亚洲精品电影| 麻豆精品一二三| 成人福利网站| 亚洲a级在线观看| 18涩涩午夜精品.www| 婷婷久久综合九色综合99蜜桃| 日韩精品在在线一区二区中文| 欧美特级www| 伊人久久大香线蕉综合网站 | 一区二区三区黄色| 久久国产99| 国产在线视频你懂得| 日韩av观看网址| 国产午夜三级一区二区三| 欧美亚洲韩国| 一卡二卡3卡四卡高清精品视频| 精品视频一区二区三区免费| 久久精品青草| 在线观看国产v片| 8090成年在线看片午夜| 91在线视频观看| 亚洲成人一区在线观看| 欧美性受黑人性爽| 精品福利av导航| 久久精品亚洲| 97影院秋霞午夜在线观看| 精品国产_亚洲人成在线| 色婷婷久久久综合中文字幕| 日韩精品不卡一区二区| 可播放的18gay1069| 国产成人精品av在线| 综合国产精品久久久| 国产日韩欧美在线视频观看| 日韩一二三四区| 日本一区二区成人| 欧美国产一区二区三区激情无套| 国产伦久视频在线观看| www精品久久| 国产精品午夜视频| 一色桃子一区二区| 欧美一区二区三区婷婷月色| 极品av在线| 麻豆映画在线观看| 国产香蕉一区二区三区在线视频| 久久精品国产99| 免费欧美电影| 欧美日韩在线不卡视频| 高清在线视频日韩欧美| 亚洲黄色尤物视频| 色777狠狠狠综合伊人| 欧洲天堂在线观看| 欧美日韩国产不卡在线看| 精品成人在线观看| 国产不卡在线一区| 北条麻妃在线一区二区免费播放| 2020中文字幕在线| 2019国产精品视频| 精品国产乱码久久久久久免费| 国产精品综合在线视频| 亚洲精品在线a| 美臀av在线| 日本不卡一区| 日韩在线观看免费全集电视剧网站| 久久女同性恋中文字幕| 激情五月综合| 久久综合之合合综合久久| 精品视频在线观看一区二区| 久久久久久国产| 一本色道亚洲精品aⅴ| 蜜臂av日日欢夜夜爽一区| 日本超碰一区二区| 日韩成人黄色| 四虎4hu永久免费入口| 91精品国产九九九久久久亚洲| 午夜精品爽啪视频| 久久99精品一区二区三区三区| 91精品亚洲一区在线观看| 在线视频尤物| 国内自拍中文字幕| 日韩美女视频在线观看| 9191精品国产综合久久久久久| 成人黄页在线观看| 欧美a级片视频| 黑人另类精品××××性爽| 国产无套粉嫩白浆内谢的出处| 国产精品久久久久999| 精品污污网站免费看| aaa国产一区| 国内精品久久久久久久影视蜜臀| 精品国产第一福利网站| 成年人免费视频观看| 久久精品一区二区三区不卡免费视频 | 国产精品主播| 成人国产一区二区三区精品麻豆| 操操操综合网| 水蜜桃色314在线观看| 91嫩草国产在线观看| 久久久久北条麻妃免费看|