使用selenium库时遇到“ [WinError 10061] 由于目标计算机积极拒绝,无法连接。“的报错

这篇具有很好参考价值的文章主要介绍了使用selenium库时遇到“ [WinError 10061] 由于目标计算机积极拒绝,无法连接。“的报错。希望对大家有所帮助。如果存在错误或未考虑完全的地方,请大家不吝赐教,您也可以点击"举报违法"按钮提交疑问。

如题,我在学习oython,selenium时遇到了" [WinError 10061] 由于目标计算机积极拒绝,无法连接。" 的报错。通过上网查资料我发现有很多篇的解决方法都是在设置代理上,而我一直都没有使用代理但还是出现了这个错误,后来通过我自己测试了一段时间后我发先问题可能是出现在了我的代码上,以下是我的排错过程:

这是我最开始的代码:

from selenium import webdriver
from bs4 import BeautifulSoup
import time
chromedriver = 'C:/Users/ASUS/AppData/Local/Programs/Python/Python38/chromedriver.exe'
# =========防止浏览器自动关闭的关键============
option = webdriver.ChromeOptions()  #创建了一个ChromeOptions对象
option.add_experimental_option("detach", True)  #在ChromeOptions对象中加入一个实验性的选项detach并设置其值为True,其作用是实现在程序运行完毕后不要关闭浏览器
# ===========================================
browser = webdriver.Chrome(chromedriver,options=option) #应用刚才所创建的option对象
browser.get('https://wpblog.x0y1.com')  #获取所有网页加载完毕后的所有数据,包括通过api请求的数据
time.sleep(2)
p_list = browser.find_elements(by='tag name',value='p')
browser.quit()
for i in p_list:
    print(i.text)

但在运行后出现了如下错误:

During handling of the above exception, another exception occurred:

Traceback (most recent call last):
  File "e:/安全方向课程/python/python爬虫/selenium的使用.py", line 14, in <module>
    print(p.text)
  File "C:\Users\ASUS\AppData\Local\Programs\Python\Python38\lib\site-packages\selenium\webdriver\remote\webelement.py", line 90, in text    
    return self._execute(Command.GET_ELEMENT_TEXT)["value"]
  File "C:\Users\ASUS\AppData\Local\Programs\Python\Python38\lib\site-packages\selenium\webdriver\remote\webelement.py", line 403, in _execute
    return self._parent.execute(command, params)
  File "C:\Users\ASUS\AppData\Local\Programs\Python\Python38\lib\site-packages\selenium\webdriver\remote\webdriver.py", line 438, in execute 
    response = self.command_executor.execute(driver_command, params)
  File "C:\Users\ASUS\AppData\Local\Programs\Python\Python38\lib\site-packages\selenium\webdriver\remote\remote_connection.py", line 290, in execute
    return self._request(command_info[0], url, body=data)
  File "C:\Users\ASUS\AppData\Local\Programs\Python\Python38\lib\site-packages\selenium\webdriver\remote\remote_connection.py", line 311, in _request
    response = self._conn.request(method, url, body=body, headers=headers)
  File "C:\Users\ASUS\AppData\Local\Programs\Python\Python38\lib\site-packages\urllib3\request.py", line 74, in request
    return self.request_encode_url(
  File "C:\Users\ASUS\AppData\Local\Programs\Python\Python38\lib\site-packages\urllib3\request.py", line 96, in request_encode_url
    return self.urlopen(method, url, **extra_kw)
  File "C:\Users\ASUS\AppData\Local\Programs\Python\Python38\lib\site-packages\urllib3\poolmanager.py", line 376, in urlopen
    response = conn.urlopen(method, u.request_uri, **kw)
  File "C:\Users\ASUS\AppData\Local\Programs\Python\Python38\lib\site-packages\urllib3\connectionpool.py", line 815, in urlopen
    return self.urlopen(
  File "C:\Users\ASUS\AppData\Local\Programs\Python\Python38\lib\site-packages\urllib3\connectionpool.py", line 815, in urlopen
    return self.urlopen(
  File "C:\Users\ASUS\AppData\Local\Programs\Python\Python38\lib\site-packages\urllib3\connectionpool.py", line 815, in urlopen
    return self.urlopen(
  File "C:\Users\ASUS\AppData\Local\Programs\Python\Python38\lib\site-packages\urllib3\connectionpool.py", line 787, in urlopen
    retries = retries.increment(
  File "C:\Users\ASUS\AppData\Local\Programs\Python\Python38\lib\site-packages\urllib3\util\retry.py", line 592, in increment
    raise MaxRetryError(_pool, url, error or ResponseError(cause))
urllib3.exceptions.MaxRetryError: HTTPConnectionPool(host='localhost', port=17245): Max retries exceeded with url: /session/82fca1b62e10dbc512e7224da613b70c/element/4307BB85929AF7D5759CE2E3A87B7AAD_element_4/text (Caused by NewConnectionError('<urllib3.connection.HTTPConnection object at 0x000002521DE25850>: Failed to establish a new connection: [WinError 10061] 由于目标计算机积极拒绝,无法连接。'))

通过最后上述报错信息中的红色部分我猜测vscode是通过去向http://127.0.0.1:17245/ 发起请求得到已经位于本地的网页源码后,然后再通过find_elements()方法去提取目标数据。那么根据最后一行的报错信息显示 "由于目标计算机积极拒绝,无法连接。",我猜测此时这个17245的端口应该是没有开启的。然后我通过netstat -a -n -p tcp再windows的shell里看了,这个tcp连接列表里确实没有这个条目。所以此时有很大概率是我的代码出了问题。然后据我学习到的内容来看selenium库的初衷是实现浏览器自动化。所以可能在我之前通过browser.quit()关闭浏览器后,我的电脑就已经释放了本次请求所拉取的html源码,即本机关闭了17245端口从而导致了上述的错误。

以下是我修改后的代码:

from selenium import webdriver
from bs4 import BeautifulSoup
import time
chromedriver = 'C:/Users/ASUS/AppData/Local/Programs/Python/Python38/chromedriver.exe'
# =========防止浏览器自动关闭的关键============
option = webdriver.ChromeOptions()  #创建了一个ChromeOptions对象
option.add_experimental_option("detach", True)  #在ChromeOptions对象中加入一个实验性的选项detach并设置其值为True,其作用是实现在程序运行完毕后不要关闭浏览器
# ===========================================
browser = webdriver.Chrome(chromedriver,options=option) #应用刚才所创建的option对象
browser.get('https://wpblog.x0y1.com')  #获取所有网页加载完毕后的所有数据,包括通过api请求的数据
time.sleep(2)
p_list = browser.find_elements(by='tag name',value='p')
for i in p_list:
    print(i.text)
browser.quit()

这次就成功的获得了运行结果:

爬虫示例站点

近期在群里看到有小伙伴问,“如何脱离扇贝的环境,在自己的电脑里运行 Python 代码?”。是的,这是一个很好的问题。我们学 Python 是要在真实环境当中 使用的,接下来我来给大家介绍一下搭建 Python 环境的常用方法。

继续阅读
“Python 环境搭建指南”

提到进位制,大家应该都对十进制比较熟悉,因为生活中大都使用十进制的,我们从小学就开始学习十进制的四则运算。既然人类对十进制这么熟悉,为什么计 算机不和人类使用一样的进制呢?

继续阅读
“理解二进制难倒了很多人?别急,小贝马上教会你”
[13552:16472:0811/112950.641:ERROR:page_load_metrics_update_dispatcher.cc(178)] Invalid first_paint 0.496 s for first_image_paint 0.494 s    

“我累了,需要很长时间的休息”


在 2018 年 7 月的一份名为“权力转移”的邮件列表帖子中,Guido van Rossum 写道:


“我不想再为 PEP 劳神了,而且尽管我做着艰难的决定,却发现仍然有很多人不满意。”

继续阅读
“因为他,Python 成为当下最红编程语言”

总结 

该错误主要是我对selenium理解不深导致,写这篇博客主要是主要有两个原因,一方面是便于自己以后的复习,另一方面是因为我在找这个问题的答案时找了很久但都没解决,如果你也遇到同样的问题希望我能给你带来一些帮助。文章来源地址https://www.toymoban.com/news/detail-722600.html

到了这里,关于使用selenium库时遇到“ [WinError 10061] 由于目标计算机积极拒绝,无法连接。“的报错的文章就介绍完了。如果您还想了解更多内容,请在右上角搜索TOY模板网以前的文章或继续浏览下面的相关文章,希望大家以后多多支持TOY模板网!

本文来自互联网用户投稿,该文观点仅代表作者本人,不代表本站立场。本站仅提供信息存储空间服务,不拥有所有权,不承担相关法律责任。如若转载,请注明出处: 如若内容造成侵权/违法违规/事实不符,请点击违法举报进行投诉反馈,一经查实,立即删除!

领支付宝红包 赞助服务器费用

相关文章

觉得文章有用就打赏一下文章作者

支付宝扫一扫打赏

博客赞助

微信扫一扫打赏

请作者喝杯咖啡吧~博客赞助

支付宝扫一扫领取红包,优惠每天领

二维码1

领取红包

二维码2

领红包