|      1jpyl0423      2017-03-14 14:58:57 +08:00 可能 requests.get 这一步就异常了. | 
|      2Curtain OP @jpyl0423 在执行 clean_downurl = soup.find(class_ = 'downurl').a['href'] 的时候。提示 soup 的错误,没有找到 a 标签。然后就终止程序了。这应该怎么写呀? | 
|      3omg21      2017-03-14 16:07:13 +08:00 第一个,你在 requests.get 之前并没有做 try ,所以在连接出错时会报错停止。 第二个,我不知道你这个 BS 的 find 的语法对不对,但是我认为如果 try 不起作用,你可以换个方法,比如在后边做个判断,用 if 代替 try 。 | 
|  |      4awanabe      2017-03-14 16:11:16 +08:00 except 没有捉到异常? 加个 Exception 试试? | 
|      5Curtain OP @omg21 第一个已经修改 try 的位置,已经解决了,第二个 BS 的语法经过测试是可以正常获取到值的。如果解决不了的话在考虑使用 if 吧。 | 
|  |      6grimpil      2017-03-14 22:17:03 +08:00 via Android 错误原因是啥,报错信息你能不能看懂 | 
|  |      7guyskk      2017-03-15 10:12:46 +08:00  1 @awanabe #4 别瞎猜啊, try except 捕获所有异常, try except Exception 捕获 Exception 类型的异常。另外要避免 try except 不加异常类型的用法,这很容易吃掉不应该忽略的异常。 | 
|      8Curtain OP @grimpil 错误原因看得懂的,列表中的某些 url 不存在我找的指定连接,然后就 bs 就提示错误了, requests 的错误是因为网络有时不稳定,连接不到 url 然后报错的。 | 
|  |      9grimpil      2017-03-17 10:16:31 +08:00 via Android clean_downurl = soup.find(class_ = 'downurl') if clean_downurl is not None: clean_downurl = clean_downurl.a['href'] 我是习惯这样,如果变量获取了某个值,进行下一步操作前,先判断一下是否为空,是否和预期一致 |