多个连接例外

2024-04-23 07:35:39 发布

您现在位置:Python中文网/ 问答频道 /正文

我使用selenium3.141.0和python3.6构建了一个scraper,它在每个请求上使用随机代理。我已经放慢了铲运机的速度,所以它一次只执行一个请求,然后在发出下一个请求之前暂停20秒。当我运行scraper时,脚本由于多个异常而终止。你知道吗

我尝试过处理异常,但这不起作用,因为它在一个会话中发生多次。我不确定是什么原因导致这一点,我试图跟踪这一点,但仍然无法找到错误。如有任何建议,将不胜感激。这些都是我得到的错误,按顺序排列。你知道吗

    except TimeoutException as e:
        print("Time out exception" %e)
    except NewConnectionError as e:
        print("New connection error %s" %e)
    except MaxRetryError as e:
        print("Max Retry Error %s" %e)

ConnectionRefusedError:[Errno 111]连接被拒绝

urllib3。异常.NewConnectionError●建立新连接失败:[Errno 111]连接被拒绝

urllib3。异常。MaxRetryError:HTTPConnectionPool(host='127.0.0.1',port=44499):超过url的最大重试次数


Tags: 脚本代理as错误原因scraper速度建议
1条回答
网友
1楼 · 发布于 2024-04-23 07:35:39

我解决了这个问题,对于在类中使用selenium时遇到这个问题的人。你不能使用司机。退出()或驱动程序关闭()在类的同一方法中。相反,您需要导入unittest并从中继承unittest.TestCase测试用例. 在文件中有一个例子,但是,如果你不知道这一点,那么你将面临一些问题。在类中,您要创建一个setUp方法和tearDown方法,并使用它们来构建程序。你知道吗

你不必使用单元测试.main在下面的例子中,你可以使用你自己的main,只需要用它们的代码就可以了。我希望这有帮助。你知道吗

import unittest
from selenium import webdriver
from selenium.webdriver.common.keys import Keys

class PythonOrgSearch(unittest.TestCase):

    def setUp(self):
        self.driver = webdriver.Firefox()

    def test_search_in_python_org(self):
        driver = self.driver
        driver.get("http://www.python.org")
        self.assertIn("Python", driver.title)
        elem = driver.find_element_by_name("q")
        elem.send_keys("pycon")
        elem.send_keys(Keys.RETURN)
        assert "No results found." not in driver.page_source


    def tearDown(self):
        self.driver.close()

def main():
    # place your code here

if __name__ == "__main__":
    main()

相关问题 更多 >