Scrapy 使用 selenium,webdriver 无法实例化

2024-01-28

我正在尝试将 selenium/phantomjs 与 scrapy 一起使用,但我遇到了很多错误。例如,采用以下代码片段:

def parse(self, resposne):

    while True:
        try:
            driver = webdriver.PhantomJS()
            # do some stuff
            driver.quit()
            break
        except (WebDriverException, TimeoutException):
            try:
                driver.quit()
            except UnboundLocalError:
                print "Driver failed to instantiate"
            time.sleep(3)
            continue

很多时候,驱动程序似乎未能实例化(因此driver未绑定,因此是例外),并且我得到了简介(以及我输入的打印消息)

Exception AttributeError: "'Service' object has no attribute 'process'" in <bound method Service.__del__ of <selenium.webdriver.phantomjs.service.Service object at 0x7fbb28dc17d0>> ignored

谷歌搜索了一下,似乎每个人都建议更新 phantomjs,我已经(1.9.8从源代码构建)。有人知道还有什么可能导致这个问题以及合适的诊断吗?


出现此行为的原因是 PhantomJS 驱动程序的Service class https://code.google.com/p/selenium/source/browse/py/selenium/webdriver/phantomjs/service.py已实施。

有一个__del__定义的方法调用self.stop() method:

def __del__(self):
    # subprocess.Popen doesn't send signal on __del__;
    # we have to try to stop the launched process.
    self.stop()

And, self.stop()假设服务实例仍然存在并尝试访问它的属性:

def stop(self):
    """
    Cleans up the process
    """
    if self._log:
        self._log.close()
        self._log = None
    #If its dead dont worry
    if self.process is None:
        return

    ...

该线程完美地描述了同样的问题:

  • __del__ 上的 Python 属性错误 https://stackoverflow.com/questions/18058730/python-attributeerror-on-del

你应该做的就是默默无视AttributeError退出驱动程序实例时发生:

try:
    driver.quit()
except AttributeError:
    pass

问题是这样引入的revision https://code.google.com/p/selenium/issues/detail?id=7304。这意味着降级为2.40.0也会有帮助。

本文内容由网友自发贡献,版权归原作者所有,本站不承担相应法律责任。如您发现有涉嫌抄袭侵权的内容,请联系:hwhale#tublm.com(使用前将#替换为@)

Scrapy 使用 selenium,webdriver 无法实例化 的相关文章

随机推荐

  • NodeJS 从后台进程读取 stdin

    我有一个在 Ubuntu 12 04 LTS 下作为服务运行的节点进程 它在 etc init 下有一个配置文件 该系统在连接了条形码阅读器的无头 x86 路由器板上运行 我需要做的是能够读取来自条形码阅读器的输入 其行为类似于 USB 键
  • 在 .NET Core 中使用 SHA-1

    在 dotnet core 中对字符串进行哈希处理时 我得到了奇怪的结果 我发现了这个类似的问题 使用 ASP NET Core 计算 SHA1 https stackoverflow com questions 35363358 comp
  • sqlite,从另一个表中的列更新列

    我目前正在处理更新的查询table1 state从数据中table2 state基于两个表中的城市字段 换句话说 当表 1 和表 2 中的城市字段匹配时 用表 2 中的州更新表 1 我遇到的问题是 当没有城市匹配时 会随机添加一个州 例如爱
  • 真的需要通配符泛型吗?

    例如 public String add Set gt 这是一个列表的列表 该方法可以向其中添加不同组件类型的列表 public void foo List
  • 在后台脚本中设置间隔

    我正在为实时产品开发浏览器扩展 我有一个在manifest json 中设置了 persistent true 的背景页面 我使用的是v2 版本 我使用 setInterval 每秒不断地轮询服务器以获取新数据 后台脚本还会缓存迄今为止收集
  • 使用纯 R 通过 dbplyr 处理日期

    dbplyr 将 dplyr 和基本 R 命令转换为 SQL 以便开发人员可以编写 R 代码并在数据库中执行它 整洁宇宙参考 https dbplyr tidyverse org 在 R 中处理日期时 通常使用 lubridate 包 然而
  • JDK 11 + JUnit 5 + Jigsaw:Junit 无法运行“模块信息”测试

    我尝试在 Gradle 项目中使用 JUnit 5 compileJava and compileTestJava两者都成功了 但是test失败并显示奇怪的消息Could not execute test class module info
  • 从“dragmove”回调中移动图层后,事件丢失

    我有一个移动图层的滚动条 因此该图层在滚动条的 dragmove 回调中移动 这会导致所有绑定事件在移动的图层上断开连接 请看这个小提琴 http jsfiddle net NY4QK 10 http jsfiddle net NY4QK
  • 链接 2 个异步调用(promise API)以串行运行

    这与我发布的问题类似today https stackoverflow com questions 16307652 promise api combining results of 2 asynchronous call 但需要串行链接请
  • 更新 Jupyter Notebook 扩展的正确方法是什么?

    升级 Jupyter Notebook 扩展 例如 RISE ipywidgets 的正确方法是什么 我有一个例程 可以通过运行来更新我的 Python 包pip install upgrade 并且当新的笔记本扩展版本可用时 这也会下载并
  • 如何将日期和时间分成两个元素?

    我制作了一个实时显示日期和时间的对象 我想知道如何将时间部分与日期分开 以便我可以将它放在自己的 HTML 元素中 以便我可以对其应用不同的样式 我对 JavaScript 不太熟悉 而且我发现使用日期对象非常复杂 LiveDateTime
  • 将最近的提交移至不同的现有分支

    我刚刚对功能分支进行了一些更改 但我意识到我在错误的分支上 如何获取我所做的最后一次提交 并将其移动到另一个已经存在的分支 我还没有推任何东西 我见过一些类似的问题 但它们都涉及创建一个新分支 并且他们所做的所有硬头重置都令人恐惧 git
  • 如何减少简单选择查询的响应时间?

    MarketPlane表包含超过 6000 万行 当我需要特定日期的飞机总数时 我执行此查询需要 7 分钟以上 我怎样才能减少这个时间 SELECT COUNT primaryKeyColumn FROM MarketPlan WHERE
  • jspc-maven-plugin 未执行?

    我在我的 pom xml 中添加了这样的 jspc 插件
  • Oracle:如何以最佳方式使用不同的 where 子句进行多次计数?

    我需要对同一表中具有不同 where 子句的行进行计数 以下是我所需的输出 Bu A B C D E F G H J K L M N GB01 267 284 84 45 35 32 458 801 111 899 892 56 99 NL
  • WooCommerce:自动完成付款订单

    通常 wooCommerce 应自动完成虚拟产品的订单 但事实并非如此 这是一个真正的问题 甚至是一个BUG之类的 所以此时你可以找到一些有用的东西 但不是很方便 1 一段代码 您可以在 wooCommerce 文档中找到 Auto Com
  • 为复杂嵌套数据编写 REST API

    因此 我正在 Angular 中构建一个应用程序 该应用程序将在后面利用 REST API 在 Node 上运行 我在设计此 API 时在处理数据复杂性方面遇到一些麻烦 需要一些帮助 以下是有问题的不同资源 医生 每个医生可能有多个患者 患
  • 在Excel VBA中,如何检查网页是否完全加载?

    为了暂停代码直到网页完全加载 我几乎一直在使用下面的方法并取得了巨大的成功 Do While objIE Busy True Or objIE readyState lt gt 4 DoEvents Loop 但有时 我会看到文本内容在该方
  • Flowtype 不断需要空检查

    我想知道如何避免这些大量的空检查 或者至少了解重点是什么 因为它似乎适得其反 如果我省略空检查 Flowtype 会给我一个错误 var myEl new MyElement if document body null error on n
  • Scrapy 使用 selenium,webdriver 无法实例化

    我正在尝试将 selenium phantomjs 与 scrapy 一起使用 但我遇到了很多错误 例如 采用以下代码片段 def parse self resposne while True try driver webdriver Ph