Как я могу ускорить поиск текста с помощью Webbot в Python - PullRequest
0 голосов
/ 03 октября 2019

Я запускаю программу, которая использует webbot в Python 3.x - работа программы, которую я пишу, помимо прочего, заключается в поиске определенных текстовых шаблонов на странице, полнойтекст, и генерировать результаты на основе того, если он найдет совпадение или нет. Итак, у меня есть несколько строк, которые выглядят примерно так:

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:

Но это не влияет на скорость программы. Как я могу сделать это немного быстрее, но не бросая веб-ботов?

1 Ответ

0 голосов
/ 11 октября 2019

Комментарии прояснили, что недостаток в самом Webbot, который слишком медленный и не соответствует задачам всего этого повторяющегося поиска.

Я неохотно переписал всю программу в Selenium,но я рад, что сделал так, как работает намного быстрее!

Также использовал булевы из-за аккуратности.

Эквивалентный код в моей версии Selenium:

try:
    driver.find_element_by_partial_link_text("hi I'm some text")
    ifoundthetext = True
    print ('yay')
except:
    ifoundthetext = False
...