- html - 出于某种原因,IE8 对我的 Sass 文件中继承的 html5 CSS 不友好?
- JMeter 在响应断言中使用 span 标签的问题
- html - 在 :hover and :active? 上具有不同效果的 CSS 动画
- html - 相对于居中的 html 内容固定的 CSS 重复背景?
注意:我花了一个多小时试图解决这个问题,但没有找到适合我的解决方案。
最后证明这是一个非常简单的错误,但我想我会提出这个问题,以便万一其他人有同样的问题可以快速找到解决方案。
我试图用以下代码抓取一个网站:
phantomjs_path = '/Users/xxx/xxx/phantomjs-2.1.1-macosx/bin/phantomjs'
driver = webdriver.PhantomJS(executable_path=phantomjs_path)
driver.set_window_size(1024, 768) #optional
driver.get(url)
# wait
element = WebDriverWait(driver, 20).until(
EC.presence_of_element_located((By.CLASS_NAME, "flightrow")))
response = driver.find_element_by_css_selector('table[class="flighttable"]')
driver.quit()
html = response.get_attribute('outerHTML') #pass from webdrive object to string
出现以下错误:
Traceback (most recent call last):
File "/Library/Frameworks/Python.framework/Versions/3.5/lib/python3.5/urllib/request.py", line 1254, in do_open
h.request(req.get_method(), req.selector, req.data, headers)
File "/Library/Frameworks/Python.framework/Versions/3.5/lib/python3.5/http/client.py", line 1106, in request
self._send_request(method, url, body, headers)
File "/Library/Frameworks/Python.framework/Versions/3.5/lib/python3.5/http/client.py", line 1151, in _send_request
self.endheaders(body)
File "/Library/Frameworks/Python.framework/Versions/3.5/lib/python3.5/http/client.py", line 1102, in endheaders
self._send_output(message_body)
File "/Library/Frameworks/Python.framework/Versions/3.5/lib/python3.5/http/client.py", line 934, in _send_output
self.send(msg)
File "/Library/Frameworks/Python.framework/Versions/3.5/lib/python3.5/http/client.py", line 877, in send
self.connect()
File "/Library/Frameworks/Python.framework/Versions/3.5/lib/python3.5/http/client.py", line 849, in connect
(self.host,self.port), self.timeout, self.source_address)
File "/Library/Frameworks/Python.framework/Versions/3.5/lib/python3.5/socket.py", line 711, in create_connection
raise err
File "/Library/Frameworks/Python.framework/Versions/3.5/lib/python3.5/socket.py", line 702, in create_connection
sock.connect(sa)
ConnectionRefusedError: [Errno 61] Connection refused
During handling of the above exception, another exception occurred:
Traceback (most recent call last):
File "my_script.py", line 1251, in <module>
MyObject.script_main()
File "my_script.py", line 1232, in script_main
self.parse_js(url)
File "my_script.py", line 1202, in parse_js
print('response:', response.text)
File "/Library/Frameworks/Python.framework/Versions/3.5/lib/python3.5/site-packages/selenium/webdriver/remote/webelement.py", line 68, in text
return self._execute(Command.GET_ELEMENT_TEXT)['value']
File "/Library/Frameworks/Python.framework/Versions/3.5/lib/python3.5/site-packages/selenium/webdriver/remote/webelement.py", line 461, in _execute
return self._parent.execute(command, params)
File "/Library/Frameworks/Python.framework/Versions/3.5/lib/python3.5/site-packages/selenium/webdriver/remote/webdriver.py", line 234, in execute
response = self.command_executor.execute(driver_command, params)
File "/Library/Frameworks/Python.framework/Versions/3.5/lib/python3.5/site-packages/selenium/webdriver/remote/remote_connection.py", line 401, in execute
return self._request(command_info[0], url, body=data)
File "/Library/Frameworks/Python.framework/Versions/3.5/lib/python3.5/site-packages/selenium/webdriver/remote/remote_connection.py", line 471, in _request
resp = opener.open(request, timeout=self._timeout)
File "/Library/Frameworks/Python.framework/Versions/3.5/lib/python3.5/urllib/request.py", line 466, in open
response = self._open(req, data)
File "/Library/Frameworks/Python.framework/Versions/3.5/lib/python3.5/urllib/request.py", line 484, in _open
'_open', req)
File "/Library/Frameworks/Python.framework/Versions/3.5/lib/python3.5/urllib/request.py", line 444, in _call_chain
result = func(*args)
File "/Library/Frameworks/Python.framework/Versions/3.5/lib/python3.5/urllib/request.py", line 1282, in http_open
return self.do_open(http.client.HTTPConnection, req)
File "/Library/Frameworks/Python.framework/Versions/3.5/lib/python3.5/urllib/request.py", line 1256, in do_open
raise URLError(err)
urllib.error.URLError: <urlopen error [Errno 61] Connection refused>
在 Chrome 浏览器中手动加载 url 是有效的。
无论如何,我尝试将 url 从 https
切换到 http
,但我仍然遇到同样的错误。
此外,在前一天我没有收到任何错误,所以我认为这不会是防火墙的问题,正如我在其他一些问题中读到的那样。
查看解决方案的答案...
最佳答案
事实证明,显然我已经向上移动了 driver.quit()
行,因此在调用“get_atribute”时出现了错误。
只需将 driver.quit()
向下移动:
driver = webdriver.PhantomJS(executable_path=phantomjs_path)
driver.set_window_size(1024, 768) #optional
driver.get(url)
# wait
element = WebDriverWait(driver, 20).until(
EC.presence_of_element_located((By.CLASS_NAME, "flightrow")))
response = driver.find_element_by_css_selector('table[class="flighttable"]')
html = response.get_attribute('outerHTML') #pass from webdrive object to string
#do not move quite() upwards! even if 'driver' is not specifically called with the command 'get_attribute'
#it will raise an error if driver is closed.
driver.quit()
关于python-3.x - Selenium - urllib.error.URLError : <urlopen error [Errno 61] Connection refused>,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/39912079/
如何区分超时错误和Python中的其他URLError? 编辑 当我捕获到 URLError 时,它可能是Temporary failure in name resolution 或 timeout,
我之前在 Windows XP 机器上安装了 Python 2.6.2 并运行以下代码: import urllib2 import urllib page = urllib2.Request('ht
这是一段网络挖掘脚本。 def printer(q,missing): while 1: tmpurl=q.get() try: ima
我有以下代码: from urllib.request import urlopen from urllib.error import HTTPError, URLError from bs4 imp
在我创建的脚本中,我将大量数据发布到 REST API。 该脚本非常模块化,在顶层某处我捕获了 URLError。我需要知道响应正文中的内容,因为其中会有一条错误消息。 是否有我可以使用的 URLEr
我正在对我们的数据库服务进行大量的 http 请求循环。一切正常,但每当我运行它时,在(看似随机的)成功查询之后,我收到以下错误:urllib2.URLError: . 我正在使用 python,u
一旦引发 URLError 异常,我想获取 HTTP 状态代码: 我试过了,但没有帮助: except URLError, e: logger.warning( 'It seems like
操作系统:Windows 7;使用Python GUI Shell的Python 2.7.3 我正在尝试通过Python阅读网站,并且有几位作者使用了urllib和urllib2库。要将网站存储在变量
我一直在开发一个网络抓取程序。当我在 Pycharm IDE 中运行它时,它工作正常。但是,当使用 cx_Freeze 编译时,出现错误: urllib.error.URLError: 这是我的代码
我正在使用 python 版本的 selenium 进行 django 的一些测试,但是当尝试启动新 session 时,firefox webdriver 会抛出 URLError 异常。我所做的是
当我将 Error 设置为 URLError 时,然后尝试访问其“代码”属性,应用程序崩溃了。我明白了 EXC_BAD_INSTRUCTION (code=EXC_I386_INVOP, subcod
try: response = urllib2.urlopen(req) except Exception, e: logger.exception(e) 是否有任何令人信服的论点反对
这特别适用于 urllib2,但更普遍的是自定义异常处理。如何通过引发的异常将附加信息传递给另一个模块中的调用函数?我假设我会使用自定义异常类重新引发,但我不确定技术细节。 我不会用我尝试过但失败过的
操作系统:Windows 7;使用 Python GUI Shell 的 Python 2.7.3 我正在尝试通过 Python 读取一个网站,一些作者使用了 urllib 和 urllib2 库。为
我是 python 新手,正在使用 python 3.5.0。我试图实现一个简单的代码如下: import urllib.request page = urllib.request.urlopen("
所以我有一个 scrapy 程序,我正试图启动它,但我无法让我的代码执行它,它总是出现以下错误。 我仍然可以使用 scrapy shell 命令访问该站点,所以我知道 Url 和其他内容都可以正常工作
我试图使用 pos_tag NLTK 3 中的函数(在 Windows 上),但出现此错误: >>> import nltk >>> tokens = nltk.word_tokenize("This
我是 Python 新手,尝试从下面的 URL 下载 csv 文件,但收到如下错误 https://mldata.org/repository/data/download/csv/stockvalue
我正在尝试使用 appcfg.py 将一些记录上传到本地数据存储 实际上只插入了少量记录,我得到以下输出(有大量错误): $ appcfg.py upload_data --config
我在研究 urllib2 时得到了这段代码。 import urllib2 req = urllib2.Request('http://www.baibai.com') try: urllib2.ur
我是一名优秀的程序员,十分优秀!