近期重裝了系統(tǒng),需要做個爬蟲,最初想用Selenium和Msedge模擬瀏覽器操作,但總是不成功,即使是用webdriver打開網(wǎng)頁這樣最簡單的操作,也無法做到,總是顯示ValueError: Timeout value connect was <object object at 0x……>, but it must be an int, float or None。 懷疑是設(shè)置問題,將對應(yīng)瀏覽器的webdriver版本核對一遍,包括路徑,均沒有問題,但就是出錯。以前曾用Selenium和Chrome瀏覽器做過爬蟲,于是又改用Chrome試了試,但結(jié)果還是出現(xiàn)一樣的錯誤。 查了許多資料,始終沒有提到如何解決。最后直接搜索錯誤信息,終于在csdn.net某大神博客上找到了解決辦法。python selenium報錯ValueError: Timeout value connect was <...>, but it must be an int, float or None._流勢的博客-CSDN博客 方案一: 文章指出,出現(xiàn)這一問題,是selenium庫和urllib3庫版本不兼容所致。我最初安裝的Selenium版本是3.141.0,Urllib3的版本是2.0.3,這兩個版本的庫是不兼容的,如果安裝的是這兩個庫,那么在使用selenium時,就會顯示上述錯誤。 在Pycharm中,選擇File—Setting——Project:…——Python Interpreter,點(diǎn)“+” 輸入urllib3,找到后,勾選Specify version指定庫的版本為1.26.2,點(diǎn)擊Install Package。把urllib3版本降級到1.26.2后,錯誤全部消失 。 方案二:根據(jù)文末BH4EOD的評論,將selenium降為3.3.1,也可以解決問題。沒自己試驗過,如果方法一解決不了,也可以試下這個方法。 方案三:因python版本不對應(yīng),導(dǎo)致出錯。根據(jù)weixin_38686363在文末評論,他直接調(diào)用conda虛擬環(huán)境用的python3.10會出錯,后來換成python 3.8.10,問題就解決了。 方案二和三,我沒親身體驗過,不過是別的網(wǎng)友成功過的。如果方案一解決不了,可以試一下二和三。希望遇到問題的網(wǎng)友把解決這一問題的辦法能在留言里寫一下。我會把留言中的問題解決辦法歸集在一起,讓大家的經(jīng)驗幫助更多的人。 其他問題及解決方案: 1、urllib3版本無法降到1.26.2。根據(jù)網(wǎng)友Th3Shine在文末的評論,把python版本降到3.10可順利將urllib3版本降到1.262。 2、顯示錯誤'No module named 'urllib3.packages.six.moves'。根據(jù)網(wǎng)友tomniu8998和weixin_46250057在文末的回復(fù),把selenium版本調(diào)整到3.3.1配合urllib3版本1.26.2,這一問題基本都能解決。若仍無法解決,可更換selenium版本:pip install urllib3==2.1.0 pip install selenium==4.8.0 兩點(diǎn)心得: 一是編程遇到難以解決的問題時,不妨試著直接查找一下錯誤信息。這樣也許你能直接找到答案,往往比自己去想快的多,比如這次的問題,如果不知道兩個包不兼容的話,很自己解決這一問題。 二是發(fā)現(xiàn)編程問題解決辦法后,應(yīng)該在博客上做好記錄,這樣不僅便于自己總結(jié)和查找,而且不一定什么時候就能幫助別人解決問題,節(jié)省其它網(wǎng)友的大量時間vb.net教程C#教程python教程。 原文鏈接:https://blog.csdn.net/weixin_60535956/article/details/131660133 |
|