我正在运行一个使用Python3.x中的webbot的程序-我正在编写的程序的任务之一是在充满文本的页面中查找特定的文本模式,并根据是否找到匹配来生成结果。所以我有一堆看起来像这样的代码:
if web.exists("hi I'm some text", loose_match=False) == True:
ifoundthetext = 1
else:
ifoundthetext = 0这确实有效,但是每个单独的搜索大约需要一到两秒钟。我有许多不同的文本需要搜索,当它通过所有这些文本时,程序在程序的每个周期大约有10秒标记。更糟糕的是,我让程序运行的时间越长(尤其是编译后的.exe版本),它就会变得越慢(如果程序在夜间运行,速度会超过一分钟)。是的,我正在使用垃圾收集。
我尝试过使用"or“语句组合文本结果,如下所示:
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呢?
发布于 2019-10-11 13:24:31
评论已经清楚地表明,不足之处在于Webbot本身,它太慢了,无法完成所有重复搜索的任务。
我不情愿地用Selenium重写了整个程序,但我很高兴我这样做了,因为它的执行速度要快得多!
也只是因为整洁而使用布尔值。
我的Selenium版本中的等效代码如下:
try:
driver.find_element_by_partial_link_text("hi I'm some text")
ifoundthetext = True
print ('yay')
except:
ifoundthetext = Falsehttps://stackoverflow.com/questions/58212628
复制相似问题