爬虫学习日记(二)

262 阅读2分钟

首先要解决的是这个异常:

在项目中会报错的应该是这一句:

这一句用了selenium四种等待方式中的显示等待:

显式等待(explicit),显式等待情况下,只有特定条件触发后,也就是说明确的等到界面某元素出现或者某可点击 等条件为止,WebDriver 才会继续执行后续操作,等不到,就一直等,除非在规定的时间之内都没找到,那么 就抛出org.openqa.selenium.TimeoutExceptionn异常。

所以我设置的这个搜索条件,我在那个网站上搜索过,没有这条feeder的信息,所以就不会有显示的数据,在timeout时间内他尝试了这么多次,也没有显示这么多次,也没有数据显示出来,就跑出来TimeoutException了。OK,原因找到。

现在要看能不能换一种等待方式,让它搜索不出来也不会抛出异常。

百度了一下,发现并不能替换一种等待方式,因为显式等待就是要有特定条件,他才会停止条件,这条语句等待的条件就是出现有想搜索的船的数据,他才会停止等待,不然就抛出timeoutException,所以换个角度,从抛出的exception入手。

debug了stack e ,发现它里面就是selenium的exception,看了项目里面的exception,发现

这个InvalidException类有一个方法是不用穿e,只用传一个string,我试试传一个String:

debug以后 问题解决:


哈哈哈哈 可以说这是我第一次完成task 开心的一批 随便总的来说就是改一个log 但是感觉跟之前不一样 总算找到一点门路 真特么嗨皮

加油啊 为狗子成为更好的人。