[問題] 請問如何透過外部條件設定api資料抓取

作者: alubasteve (poorguy)   2019-04-20 21:46:59
版上諸位先進大家好
我不斷嘗試如何直接從外部設定條件
藉此從api抓資料
但我目前卡在這裡
https://pastebin.com/2E7Yr95N
我只要把程式命令提示字元
就會出現以下圖示
https://imgur.com/a/vI52TJ2
請問我做錯了什麼
作者: lajji (喇機)   2019-04-20 22:41:00
你要用sys.argv[1]就要輸入參數啊
作者: alubasteve (poorguy)   2019-04-21 00:31:00
給lajji,我不懂您說的輸入參數,可以解釋更清楚一點嗎
作者: lajji (喇機)   2019-04-21 08:04:00
你用sys.argv[1]的用意是什麼
作者: alubasteve (poorguy)   2019-04-21 09:11:00
給lajji,我是照著書打的,sys.argv[1]的解釋是將sys.argv的第2個項目,亦即第1參數的"想搜尋的標題"指派給search_word
作者: charlie11438 (煞氣a查理)   2019-04-21 09:36:00
https://i.imgur.com/1B4Le9A.jpg圈起來的部分就是你需給的參數 sys.argv的參數就是你在執行時後面所付的東西 為一list 0的位置存放檔名 後面放置所傳入的參數https://i.imgur.com/0IJznfU.png 像這樣 print第一個傳入的參數 如沒傳入 list的長度為1 自然會index out of range如果沒要這樣傳入 應該是用input 如果有錯請大家糾正 我也是新手
作者: alubasteve (poorguy)   2019-04-21 10:55:00
給charlie11438,感謝你的協助,所以就你的答案來看我一直搞不清楚要如何透過sys.argv[1]去抓預設參數所以這是否代表我少準備一個檔案,所以檔案不成功另外,我也不懂如果用input要怎麼改,可以請您告訴我嗎抱歉我還太嫩,您跟lajji要表達的我實在不大懂
作者: TitanEric (泰坦)   2019-04-21 11:27:00
argv是參數list, 第一個也就是argv[0]是代表程式名稱你的程式裡面有用到argv[1]代表有用到第二個元素但是你下指令的時候只有程式名稱 自然就如版友提到的會out of range使用argv跟input都是可以要參數的方法新手的話可能用input會比較友善input寫法就是改成 search word=input()這樣在執行程式的時候 會等你輸入才會繼續跑下去
作者: charlie11438 (煞氣a查理)   2019-04-21 12:10:00
如果是要改成input,上面的版友已經給了,應該不是你少檔案,而是你在命令提示字元執行時後面要加入參數,也就是python *. py [你要加的參數]以空格區分 分別存入list中 第幾個就是存放的位置eg 第一個傳入的參數index=1 不過用input也可以 就是variable=input('文字')https://reurl.cc/NNK16 你可以看一下這個https://i.imgur.com/T4xukQD.pnghttps://i.imgur.com/2i3pRyT.pngsys.argv的原理大概像這樣 為一list 也可以查找index 執行命令後一串的參數將會分別存入。https://i.imgur.com/oLV9BtZ.png
作者: alubasteve (poorguy)   2019-04-21 13:11:00
給TitanEric,多謝你的協助,我把原本程式的第3行改成search word=input(),就可輸入想要搜尋的對象然後形成html檔案,只是輸錯名稱就糗了但請恕我才疏學淺,TitanEric+charlie114,我反而更不懂input和sys.argv為何有此差異,事實上我連charlie11438給的範例都看不懂,不,根本大家的都看不懂,我只能猜測使用input之後,input變成在命令提示字元可以輸入字詞的理由,但我還是無法理解原本少了什麼例如"命令提示字元執行時後面要加入參數,也就是""python *. py [你要加的參數]",抱歉還是看不懂
作者: charlie11438 (煞氣a查理)   2019-04-21 13:54:00
要打的東西有點多,已經變成一篇文章,你再看看。

Links booklink

Contact Us: admin [ a t ] ucptt.com