我正在运行一个在 Python 3.x中使用webbot的程序 - 我正在编写的程序的工作,除其他外,是在充满文本的页面中查找某些文本模式,并根据它是否生成结果找到匹配与否。所以我有一堆看起来像这样的行:
if web.exists("hi I'm some text", loose_match=False) == True:
ifoundthetext = 1
else:
ifoundthetext = 0
这确实有效,但是每次单独搜索大约需要一两秒钟。我有很多不同的文本需要搜索,当它通过所有文本时,程序的每个周期大约是 10 秒标记。更糟糕的是,我让程序运行的时间越长(尤其是编译后的 .exe 版本),它就会变得越慢(如果程序在一夜之间运行,最多超过一分钟)。是的,我正在使用垃圾收集。
我尝试使用“或”语句组合文本结果,如下所示:
if web.exists("hi I'm some text", loose_match=False) == True or web.exists("hi I'm some other text", loose_match=False) == True:
但这对程序的速度没有影响。我怎样才能让这件事更快一点,但又不放弃网络机器人?
评论已经清楚地表明,缺陷在于 Webbot 本身,它太慢了,无法完成所有重复搜索的任务。
我不情愿地用 Selenium 重写了整个程序,但我很高兴我这样做了,因为它的执行速度要快得多!
也因为整洁而使用布尔值。
我的 Selenium 版本中的等效代码:
try:
driver.find_element_by_partial_link_text("hi I'm some text")
ifoundthetext = True
print ('yay')
except:
ifoundthetext = False
本文收集自互联网,转载请注明来源。
如有侵权,请联系 [email protected] 删除。
我来说两句