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