如何在 Python 中使用 Webbot 加快查找文本的速度
How can I speed up finding text with Webbot in Python
我是 运行 一个在 Python 3.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?
评论已经明确指出 Webbot 本身存在缺陷,它太慢了,无法完成所有重复搜索的任务。
我不情愿地用 Selenium 重写了整个程序,但我很高兴我这样做了,因为它执行得更快!
为了整洁也使用了布尔值。
我的 Selenium 版本中的等效代码:
try:
driver.find_element_by_partial_link_text("hi I'm some text")
ifoundthetext = True
print ('yay')
except:
ifoundthetext = False
我是 运行 一个在 Python 3.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?
评论已经明确指出 Webbot 本身存在缺陷,它太慢了,无法完成所有重复搜索的任务。
我不情愿地用 Selenium 重写了整个程序,但我很高兴我这样做了,因为它执行得更快!
为了整洁也使用了布尔值。
我的 Selenium 版本中的等效代码:
try:
driver.find_element_by_partial_link_text("hi I'm some text")
ifoundthetext = True
print ('yay')
except:
ifoundthetext = False