[问题] 请问如何透过外部条件设定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