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