- android - 多次调用 OnPrimaryClipChangedListener
- android - 无法更新 RecyclerView 中的 TextView 字段
- android.database.CursorIndexOutOfBoundsException : Index 0 requested, 光标大小为 0
- android - 使用 AppCompat 时,我们是否需要明确指定其 UI 组件(Spinner、EditText)颜色
我的目标是执行我之前在 Windows 上使用过的脚本,转换到 chromedriver 后出现此错误:
Blockquote selenium.common.exceptions.WebDriverException: >> Message: 'chromedriver' executable needs to be in the PATH.
windows exe 文件在 PATH 中并与 windows 一起工作。我已将 chromedriver 替换为最新版本的 Linux chromedriver,并将 chrome 网络浏览器安装到默认目录。它似乎没有意识到该文件在那里,并且在代码中没有指定它是它正在寻找的 .exe。
这是代码
import scrapy
from ..items import AuctionscrapingItem
from selenium.webdriver.support.ui import
WebDriverWait
from selenium.webdriver.support import
expected_conditions as EC
from selenium.webdriver.common.by import By
from selenium.common.exceptions import
TimeoutException
from selenium.common.exceptions import
NoSuchElementException
from scrapy.crawler import CrawlerProcess
import time
import re
from twisted.internet import reactor, defer
from scrapy.crawler import CrawlerRunner
from scrapy.utils.log import configure_logging
from scrapy.settings import Settings
from auctionscraping import settings as my_settings
import mysql.connector
from datetime import datetime
class AuctionInt(scrapy.Spider):
name = 'auction'
start_urls = ['https://www.websitefunfirst.com/']
def __init__(self):
self.driver = webdriver.Chrome('/opt/lampp/htdocs/scrapy/chromedriver')
self.driver.maximize_window()
self.conn = mysql.connector.connect(
host= 'localhost',
user= 'root',
passwd= '',
database= 'auction'
)
self.curr = self.conn.cursor(buffered=True)
self.curr.execute("""create table IF NOT EXISTS auction_tb(
id int,
web_name text,
website text,
name text,
start text,
end text,
locations text,
location_link text,
remaining_time text,
current_bid text,
viewer text,
premium text,
image_urls text,
bid text,
starting_bid text,
description text
)""")
self.curr.execute("""create table IF NOT EXISTS bid_history(
id int NOT NULL,
name varchar(50),
bidder varchar(20) NOT NULL,
bid_amount text,
PRIMARY KEY (id,name,bidder)
)""")
try:
self.curr.execute("""select id from auction_tb order by id desc limit 1""")
last_id = self.curr.fetchone()
self.id_no = last_id[0]
except:
self.id_no = 0
f = open("/opt/lampp/htdocs/scrapy/result.txt", "w")
f.write("scraping")
f.close()
self.clear_ended_item()
'''
在代码中,我更改了驱动程序目录以匹配 ubuntu(将 xampp 更改为 lampp 和之前的目录)并且我为网站抓取添加了一个占位符。这部分脚本和整个脚本在windows上完美运行。我尝试过的事情:
could not display "chromedriver".
there is no application installed for "shared library" files. do you want to search for an application to open this file?
文件类型是:共享库(application/x-sharedlib)现在在属性中选中允许执行
更新#2:正如 Yosuva A 所建议的那样。我使用了来自 chromedriver (chromedriver.chromium.org/getting-started) 的示例脚本并得到了一个不同的错误,但这清楚地表明它正在寻找 chromedriver 文件。
selenium.common.exceptions.SessionNotCreatedException: Message: session not >created: This version of ChromeDriver only supports Chrome version 78
我正在寻找一种方法来查找我拥有的 chrome 并下载 chromdriver 以匹配它。另一种方法是下载 chrome 版本 78。它抛出一个和以前不同的错误
更新 #3:示例 chrome 脚本现在可以使用,尝试使用与原始脚本文件相同的代码行
更新#4(10 分钟后):示例脚本有效。项目脚本运行失败-获取错误信息
Blockquote selenium.common.exceptions.WebDriverException: >> Message: 'chromedriver' executable needs to be in the PATH.
更新#5:在运行 scrapy 爬行期间显示命令提示符。
2019-10-10 00:28:29 [py.warnings] WARNING:
/home/disco/.conda/envs/success/lib/python3.7/site-packages/scrapy/spiderloader.py:37: UserWarning: There are several spiders with the same name:
Furgeson named 'auction' (in auctionscraping.spiders.auction_spyder)
Hemingway named 'auction' (in auctionscraping.spiders.auction_spyder)
Jeffersons named 'auction' (in auctionscraping.spiders.auction_spyder)
End named 'auction' (in auctionscraping.spiders.auction_spyder)
This can cause unexpected behavior.
warnings.warn(msg, UserWarning)
2019-10-10 00:28:29 [scrapy.crawler] INFO: Overridden settings: {'BOT_NAME': 'auctionscraping', 'NEWSPIDER_MODULE': 'auctionscraping.spiders', 'ROBOTSTXT_OBEY': True, 'SPIDER_MODULES': ['auctionscraping.spiders']}
2019-10-10 00:28:29 [scrapy.extensions.telnet] INFO: Telnet Password: cef133d6b6822838
2019-10-10 00:28:29 [scrapy.middleware] INFO: Enabled extensions:
['scrapy.extensions.corestats.CoreStats',
'scrapy.extensions.telnet.TelnetConsole',
'scrapy.extensions.memusage.MemoryUsage',
'scrapy.extensions.logstats.LogStats']
Note: error message comes up after the script has failed to run.. when i CTRL + C close the program this error:
> File "/home/disco/.conda/envs/success/bin/scrapy", line 11, in <module>
sys.exit(execute())
File "/home/disco/.conda/envs/success/lib/python3.7/site-packages/scrapy/cmdline.py", line 149, in execute
cmd.crawler_process = CrawlerProcess(settings)
File "/home/disco/.conda/envs/success/lib/python3.7/site-packages/scrapy/crawler.py", line 251, in __init__
super(CrawlerProcess, self).__init__(settings)
File "/home/disco/.conda/envs/success/lib/python3.7/site-packages/scrapy/crawler.py", line 137, in __init__
self.spider_loader = _get_spider_loader(settings)
File "/home/disco/.conda/envs/success/lib/python3.7/site-packages/scrapy/crawler.py", line 338, in _get_spider_loader
return loader_cls.from_settings(settings.frozencopy())
File "/home/disco/.conda/envs/success/lib/python3.7/site-packages/scrapy/spiderloader.py", line 61, in from_settings
return cls(settings)
File "/home/disco/.conda/envs/success/lib/python3.7/site-packages/scrapy/spiderloader.py", line 25, in __init__
self._load_all_spiders()
File "/home/disco/.conda/envs/success/lib/python3.7/site-packages/scrapy/spiderloader.py", line 47, in _load_all_spiders
for module in walk_modules(name):
File "/home/disco/.conda/envs/success/lib/python3.7/site-packages/scrapy/utils/misc.py", line 71, in walk_modules
submod = import_module(fullpath)
File "/home/disco/.conda/envs/success/lib/python3.7/importlib/__init__.py", line 127, in import_module
return _bootstrap._gcd_import(name[level:], package, level)
File "<frozen importlib._bootstrap>", line 1006, in _gcd_import
File "<frozen importlib._bootstrap>", line 983, in _find_and_load
File "<frozen importlib._bootstrap>", line 967, in _find_and_load_unlocked
File "<frozen importlib._bootstrap>", line 677, in _load_unlocked
File "<frozen importlib._bootstrap_external>", line 728, in exec_module
File "<frozen importlib._bootstrap>", line 219, in _call_with_frames_removed
File "/opt/lampp/htdocs/scrapy/auctionscraping/auctionscraping/spiders/auction_spyder.py", line 576, in <module>
f = open("opt/lampp/htdocs/scrapy/result.txt", "w")
FileNotFoundError: [Errno 2] No such file or directory: 'opt/lampp/htdocs/scrapy/result.txt'
Unhandled error in Deferred:
2019-10-10 00:44:07 [twisted] CRITICAL: Unhandled error in Deferred:
>Traceback (most recent call last):
File "/home/disco/.conda/envs/success/lib/python3.7/site-packages/scrapy/crawler.py", line 172, in crawl
return self._crawl(crawler, *args, **kwargs)
File "/home/disco/.conda/envs/success/lib/python3.7/site-packages/scrapy/crawler.py", line 176, in _crawl
d = crawler.crawl(*args, **kwargs)
File "/home/disco/.conda/envs/success/lib/python3.7/site-packages/twisted/internet/defer.py", line 1613, in unwindGenerator
return _cancellableInlineCallbacks(gen)
File "/home/disco/.conda/envs/success/lib/python3.7/site-packages/twisted/internet/defer.py", line 1529, in _cancellableInlineCallbacks
_inlineCallbacks(None, g, status)
--- <exception caught here> ---
File "/opt/lampp/htdocs/scrapy/auctionscraping/auctionscraping/spiders/auction_spyder.py", line 571, in crawl
yield runner.crawl(Jefferson)
File "/home/disco/.conda/envs/success/lib/python3.7/site-packages/twisted/internet/defer.py", line 1418, in _inlineCallbacks
result = g.send(result)
File "/home/disco/.conda/envs/success/lib/python3.7/site-packages/scrapy/crawler.py", line 79, in crawl
self.spider = self._create_spider(*args, **kwargs)
File "/home/disco/.conda/envs/success/lib/python3.7/site-packages/scrapy/crawler.py", line 102, in _create_spider
return self.spidercls.from_crawler(self, *args, **kwargs)
File "/home/disco/.conda/envs/success/lib/python3.7/site-packages/scrapy/spiders/__init__.py", line 51, in from_crawler
spider = cls(*args, **kwargs)
File "/opt/lampp/htdocs/scrapy/auctionscraping/auctionscraping/spiders/auction_spyder.py", line 408, in __init__
self.driver = webdriver.Chrome('opt/lampp/htdocs/scrapy/chromedriver')
File "/home/disco/.conda/envs/success/lib/python3.7/site-packages/selenium/webdriver/chrome/webdriver.py", line 73, in __init__
self.service.start()
File "/home/disco/.conda/envs/success/lib/python3.7/site-packages/selenium/webdriver/common/service.py", line 83, in start
os.path.basename(self.path), self.start_error_message)
selenium.common.exceptions.WebDriverException: Message: 'chromedriver' executable needs to be in PATH. Please see https://sites.google.com/a/chromium.org/chromedriver/home
2019-10-10 00:44:07 [twisted] CRITICAL:
Traceback (most recent call last):
File "/home/disco/.conda/envs/success/lib/python3.7/site-packages/selenium/webdriver/common/service.py", line 76, in start
stdin=PIPE)
File "/home/disco/.conda/envs/success/lib/python3.7/subprocess.py", line 775, in __init__
restore_signals, start_new_session)
File "/home/disco/.conda/envs/success/lib/python3.7/subprocess.py", line 1522, in _execute_child
raise child_exception_type(errno_num, err_msg, err_filename)
FileNotFoundError: [Errno 2] No such file or directory: 'opt/lampp/htdocs/scrapy/chromedriver': 'opt/lampp/htdocs/scrapy/chromedriver'
更新#6:我看到 .txt 文件有错误,我已经更改了该文件的位置并在脚本中重定向了它。接下来我正在为 chromedriver 文件做这件事。
更新#7:chromedriver 位置应该是/opt/lampp... 但它被错误地标记为 opt/lampp.. -- 更改后浏览器打开但脚本不运行。纯空白页。
现在我认为 chromedriver 问题已经解决,主要是目录不便,因为该目录在文件中多次列出,最初我只看到脚本中标记 chromedriver 目录的一行。在将 ctrl +F 与列为旧目录的行一起使用后,我发现所有其他代码行都更改了它们并且可以正常工作。
最佳答案
让 chromedriver 工作主要有三件事:
将 chromedriver 的所有旧目录更改为新目录,使用 CTRL +F 对文本文件进行全局搜索。这样做的重要部分是,当我收到 chromedriver 错误时,它没有显示它在哪一行打印错误,所以在使用旧目录再次调用 chromedriver 的地方,它在更改到新目录时被忽略了,但提示仍然显示找不到 chromedriver 文件,另外 2 次调用 chromedriver 目录被设置为旧目录——抛出同样的错误。
Mchromedriver 版本与 chrome 版本相同。这是在从 chromedriver 教程页面运行示例脚本时发现的,在任何其他外部错误中,使用程序 chromedriver 文件位置检查文件是否无法找到,同时使用干净的脚本(教程 chromedriver 脚本)。
<为您现在使用的任何操作系统下载 chromedriver,并将文件标记为可执行文件,安装在任何目录中,只需确保在安装时更改您的目录即可。
关于python - 在过渡到 Ubuntu 的过程中,如何修复 chromedriver Windows >>> 的可执行错误?,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/58273834/
我已经使用 vue-cli 两个星期了,直到今天一切正常。我在本地建立这个项目。 https://drive.google.com/open?id=0BwGw1zyyKjW7S3RYWXRaX24tQ
您好,我正在尝试使用 python 库 pytesseract 从图像中提取文本。请找到代码: from PIL import Image from pytesseract import image_
我的错误 /usr/bin/ld: errno: TLS definition in /lib/libc.so.6 section .tbss mismatches non-TLS reference
我已经训练了一个模型,我正在尝试使用 predict函数但它返回以下错误。 Error in contrasts<-(*tmp*, value = contr.funs[1 + isOF[nn]])
根据Microsoft DataConnectors的信息我想通过 this ODBC driver 创建一个从 PowerBi 到 PostgreSQL 的连接器使用直接查询。我重用了 Micros
我已经为 SoundManagement 创建了一个包,其中有一个扩展 MediaPlayer 的类。我希望全局控制这个变量。这是我的代码: package soundmanagement; impo
我在Heroku上部署了一个应用程序。我正在使用免费服务。 我经常收到以下错误消息。 PG::Error: ERROR: out of memory 如果刷新浏览器,就可以了。但是随后,它又随机发生
我正在运行 LAMP 服务器,这个 .htaccess 给我一个 500 错误。其作用是过滤关键字并重定向到相应的域名。 Options +FollowSymLinks RewriteEngine
我有两个驱动器 A 和 B。使用 python 脚本,我在“A”驱动器中创建一些文件,并运行 powerscript,该脚本以 1 秒的间隔将驱动器 A 中的所有文件复制到驱动器 B。 我在 powe
下面的函数一直返回这个错误信息。我认为可能是 double_precision 字段类型导致了这种情况,我尝试使用 CAST,但要么不是这样,要么我没有做对...帮助? 这是错误: ERROR: i
这个问题已经有答案了: Syntax error due to using a reserved word as a table or column name in MySQL (1 个回答) 已关闭
我的数据库有这个小问题。 我创建了一个表“articoli”,其中包含商品的品牌、型号和价格。 每篇文章都由一个 id (ID_ARTICOLO)` 定义,它是一个自动递增字段。 好吧,现在当我尝试插
我是新来的。我目前正在 DeVry 在线学习中级 C++ 编程。我们正在使用 C++ Primer Plus 这本书,到目前为止我一直做得很好。我的老师最近向我们扔了一个曲线球。我目前的任务是这样的:
这个问题在这里已经有了答案: What is an undefined reference/unresolved external symbol error and how do I fix it?
我的网站中有一段代码有问题;此错误仅发生在 Internet Explorer 7 中。 我没有在这里发布我所有的 HTML/CSS 标记,而是发布了网站的一个版本 here . 如您所见,我在列中有
如果尝试在 USB 设备上构建 node.js 应用程序时在我的树莓派上使用 npm 时遇到一些问题。 package.json 看起来像这样: { "name" : "node-todo",
在 Python 中,您有 None单例,在某些情况下表现得很奇怪: >>> a = None >>> type(a) >>> isinstance(a,None) Traceback (most
这是我的 build.gradle (Module:app) 文件: apply plugin: 'com.android.application' android { compileSdkV
我是 android 的新手,我的项目刚才编译和运行正常,但在我尝试实现抽屉导航后,它给了我这个错误 FAILURE: Build failed with an exception. What wen
谁能解释一下?我想我正在做一些非常愚蠢的事情,并且急切地等待着启蒙。 我得到这个输出: phpversion() == 7.2.25-1+0~20191128.32+debian8~1.gbp108
我是一名优秀的程序员,十分优秀!