我正在尝试运行一个使用 Selenium 和 Chrome 的 python 程序来分析来自某些网站的数据。我遇到的问题是 Selenium 或 Webdriver 正在用我不关心的输出淹没控制台,并使查看我的程序输出变得困难。我已经阅读了许多有关此问题的其他线程以及各种驱动程序选项,但似乎没有任何效果。这些选项最好的做法就是删除它:
DevTools listening on ws://127.0.0.1:54429/devtools/browser/bbc7bc4a-bdf2-43a3-9fd4-c94dd9113aea
Run Code Online (Sandbox Code Playgroud)
但所有这些仍然存在:
POST http://127.0.0.1:54462/session/7950e584b7a2cd732bdd5bf9bb685178/execute/sync {"script": "return (function(){return function(){var d=this;function f(a){return\"string\"==typeof a};function h(a,b){this.code=a;this.a=l[a]||m;this.message=b||\"\";a=this.a.replace(/((?:^|\\s+)[a-z])/g,function(a){return a.toUpperCase().replace(/^[\\s\\xa0]+/g,\"\")});b=a.length-5;if(0>b||a.indexOf(\"Error\",b)!=b)a+=\"Error\";this.name=a;a=Error(this.message);a.name=this.name;this.stack=a.stack||\"\"}\n(function(){var a=Error;function b(){}b.prototype=a.prototype;h.b=a.prototype;h.prototype=new b;h.prototype.constructor=h;h.a=function(b,c,g){for(var e=Array(arguments.length-2),k=2;k<arguments.length;k++)e[k-2]=arguments[k];return a.prototype[c].apply(b,e)}})();var m=\"unknown error\",l={15:\"element not selectable\",11:\"element not visible\"};l[31]=m;l[30]=m;l[24]=\"invalid cookie domain\";l[29]=\"invalid element coordinates\";l[12]=\"invalid element state\";l[32]=\"invalid selector\";l[51]=\"invalid selector\";\nl[52]=\"invalid selector\";l[17]=\"javascript error\";l[405]=\"unsupported operation\";l[34]=\"move target out of bounds\";l[27]=\"no such alert\";l[7]=\"no such element\";l[8]=\"no such frame\";l[23]=\"no such window\";l[28]=\"script timeout\";l[33]=\"session not created\";l[10]=\"stale element reference\";l[21]=\"timeout\";l[25]=\"unable to set cookie\";l[26]=\"unexpected alert open\";l[13]=m;l[9]=\"unknown command\";h.prototype.toString=function(){return this.name+\": \"+this.message};var n;a:{var p=d.navigator;if(p){var q=p.userAgent;if(q){n=q;break a}}n=\"\"}function r(a){return-1!=n.indexOf(a)};function t(a,b){for(var …Run Code Online (Sandbox Code Playgroud) 我是 CSS 学位的应届毕业生,我从未有机会参加有关分布式系统的课程,但我逐渐对这个主题感兴趣。我很想一头扎进这个主题,希望能开始我作为该领域软件开发人员的职业生涯。我参加了操作系统课程,了解多线程编程,以及分布式系统概念的基本知识,但这与我对主题的了解差不多,而这根本不接近。
有没有人知道一个适合拥有 CSS 学位的人开始学习该主题的好地方?
我真的需要分布式系统方面的强大背景才能获得入门级工作,还是您认为有公司愿意雇用具有强大编程技能但不一定对分布式系统有深入了解的人?
我正在尝试使用 Selenium 运行 Python 脚本,虽然一切正常,但我个人的 print() 到控制台行隐藏在大量 Selenium/Chromedriver 输出之间,如下所示:
1128/150256.806:INFO:CONSOLE(0)] "The SSL certificate used to load resources from [some-link.com] will be distrusted in the future. Once distrusted, users will be prevented from loading these resources. See https://g.co/chrome/symantecpkicerts for more information.", source: [current-page.com] (0)
Run Code Online (Sandbox Code Playgroud)
我检查了这些链接是什么,它们只是我正在查看的页面上的广告,因此完全没有用。此外,由于每次页面加载/重新加载时都会随机生成广告,因此链接不同,因此输出永无止境。这非常烦人,并且很难看到我的程序中实际发生了什么。有什么办法可以用一些 Selenium 选项或其他东西来关闭它吗?
奇怪的是,使用 PyDev 在 Eclipse Oxygen 中运行程序根本不显示任何 Selenium 的输出,只有当我使用命令行运行它时。
编辑:按照提到的可能重复项的说明没有帮助。我尝试将日志记录级别设置为最高、CRITICAL,但上面提到的输出仍然通过并淹没了控制台。
编辑:我想我想出了这个问题。只有开始时间需要保持不变,直到需要重置累计数字,所以在我的情况下,一天的开始将在午夜之后重置,但结束时间将始终是当前时间。我仍在测试这个,所以我会在得到更多结果后立即关闭这个问题。
EDIT2:因此,将时间间隔设置为每天开始时开始并在发送时结束,图表仍然显示每次调用 client.create_time_series 时的峰值。这是我正在寻找的示例(忽略右轴,数字应该更高,但我的 photoshop 技能不是很好):
这就是我目前得到的:

在解释错误之前,以下是我尝试使用此自定义监控指标实现的目标。我的程序每隔一段时间记录一些处理过的数据,我想查看每天处理的总数。所以我认为累积指标是正确的选择,每天重置间隔。问题是我不确定如何实现这一目标。
这就是我正在做的事情。每次处理一些新数据时,我都会使用client.create_time_series(project_name, [series])where将其添加到指标中,其中[series]包含point.value.int64_value当时处理的数据数量中的一个。现在我的问题是间隔。我认为间隔应该是每天的开始和结束时间,我认为在一天结束时,指标会从 0 开始。所以我这样做了:
point = series.points.add()
point.value.int64_value = num
startDay = time.mktime(datetime.datetime.now().replace(hour=0, minute=0, second=0, microsecond=0).timetuple())
endDay = time.mktime(datetime.datetime.now().replace(hour=23, minute=59, second=59, microsecond=0).timetuple())
point.interval.start_time.seconds = int(startDay)
point.interval.start_time.nanos = int((startDay - point.interval.start_time.seconds) * 10**9)
point.interval.end_time.seconds = int(endDay)
point.interval.end_time.nanos = int((endDay - point.interval.end_time.seconds) * 10**9)
client.create_time_series(project_name, [series])
Run Code Online (Sandbox Code Playgroud)
我得到这个错误:
400 Field timeSeries[0].points[0].interval.end had an invalid value of \"2018-10-04T16:59:59-07:00\": The end time is too far in the future. A point cannot …Run Code Online (Sandbox Code Playgroud) 我的程序执行 SQL 插入时一直遇到一个奇怪的问题。我定期(每天一次)在单个 INSERT 语句中使用 pymysql 发送大量数据,每隔几天我就会收到以下错误:
(sqlalchemy.exc.InvalidRequestError) A value is required for bind parameter 'D' [SQL:
在我的代码中,这是数据库连接和插入完成的方式:
会话创建:
engine = sqlalchemy.create_engine(db_host, echo = False)
self.metadata = sqlalchemy.MetaData(engine)
DB_session = sqlalchemy.orm.sessionmaker(bind = engine)
session = DB_session()
Run Code Online (Sandbox Code Playgroud)
插入功能:
def insert(self,sql):
complete = False
try:
self.session.execute(sql)
self.session.commit()
complete = True
except Exception as e:
# Do some logging
finally:
return complete
Run Code Online (Sandbox Code Playgroud)
典型的插入语句如下所示:
INSERT INTO my_db.my_table (field_1, field_2, field_3, ... field_32)
VALUES(data_set1),(data_set2),(data_set3)...(data_set500)
ON DUPLICATE KEY UPDATE
field_1=VALUES(field_1), field_2=VALUES(field_2), field_3=VALUES(field_3) ... field_32=VALUES(field_32)
Run Code Online (Sandbox Code Playgroud)
我查过这个问题,通常情况下,当用户显式设置绑定参数并且缺少一个参数时,似乎会发生这种情况,但我不明白为什么我的代码会发生这种情况,而我没有设置任何参数,而且我没有字段说出“D”的名称或知道“D”指的是什么。另外,更令人困惑的是,当我将完全相同的语句插入 MySQL …
我有一个看似简单的问题,但我担心它太复杂,仅我一个人无法实现。我正在尝试在网页中实现一个文本区域,用户可以在其中编写 html 代码,按下按钮,解释后的 html 页面会显示在代码旁边的 div 中。与 w3schools 的“尝试一下”部分非常相似。
到目前为止,我已经实现了所有内容,并且它几乎按预期工作,当您按下按钮时,代码会在正确的位置正确呈现。下一步是在文本区域中实现语法突出显示,以便根据键入的标签或属性重新着色文本。基本上,我希望其行为与编写 html 代码时 notepad++ 的行为完全相同。文本变为蓝色,attribute="" 文本变为红色,等等。
我的想法是,我需要以某种方式逐字读取文本区域中的内容,测试所有可能的标签和属性名称,并用彩色文本重新填充文本区域。据我所知,我认为这对于传统的文本区域是不可能的,我可能必须实现一个专门的小程序来代替文本区域。有谁知道实现这一目标最痛苦的方法是什么?我是一名计算机科学专业的学生,即将完成我的学位,但我对 Web 编程的知识非常有限,而且我才开始深入研究 jquery 和 jsp,尽管我在 HTML/CSS/Javascript 方面拥有丰富的经验。
目前,我正在使用getStaticProps并getStaticPaths在我的网站上线之前预渲染最新的 X 篇文章。这效果很好,但如果在网站仍在运行时创建新文章并显示在首页上,则新文章将返回 404 页面。
我想要的是,如果页面不存在,则将 id(如文件中的 mysite.com/posts/id /posts/[id].js)传递给函数,以便可以在运行时在服务器上预渲染页面。我不想默认为getServerSideProps,因为这会在每个请求上呈现页面,我正在寻找的是永久呈现页面,并将其保存为可爬网文件getStaticProps,就像仅在运行时一样。
TL:DR 我正在寻找运行时的getStaticPaths/getStaticProps行为。这在 NextJS 中可能吗?
如果不是,我怎么能随时获得新文章,而不必经常关闭服务器,重新构建它,然后重新启动它,这似乎非常难以管理。
我一直在寻找一个开始学习嵌入式系统设计/编程的好地方,虽然所有人都建议使用Arduino和RaspberryPi这样的初学设备,但我从未见过任何有关汇编级别编程的建议.我最近完成了计算机科学学士学位,但我越来越多地被硬件而不是软件编程所吸引.我参加了一个硬件设计课程,我们在Logistic中进行了68k和逻辑设计的汇编编程.我有一个Raspberry Pi,并且已经搞砸了一些,但是用于这些设备的语言仍然是更高级别(C,C++,Python).
所以我有一些问题,因为我真的对芯片/计算机硬件的低级设计感兴趣:
汇编语言在今天的硬件设计中有哪些应用?它是否仍被广泛使用或大多数是由更高级别的语言抽象出来的?
如果它仍然被广泛使用,那么什么类型的工作涉及装配编程?什么是最流行的汇编编程平台(68k,x86等)?
最后,如果上述情况适用,现代大会节目的一些资源是什么?
谢谢,我再次看了一些关于深入嵌入式系统的其他问题,所以我希望我的问题有很大的不同,但如果我的问题已经得到解答,请随时提出这个问题!
javascript ×2
python ×2
python-3.x ×2
selenium ×2
windows ×2
assembly ×1
cloud ×1
command-line ×1
css ×1
embedded ×1
html ×1
jquery ×1
jsp ×1
metrics ×1
monitoring ×1
mysql ×1
next.js ×1
pymysql ×1
sqlalchemy ×1