Делаю парсер страницы (Python + selenium + beautiful soup). Как проверять ссылки на вхождение подстроки?
Из множества ссылок на странице мне нужно находить только 6 ссылок и переходить по ним. В тексте ссылки есть по одному ключевому слову, но в url периодически меняется окончание - добавляется дата. Поэтому я не могу объявить переменную с url'ами. Подскажите, как искать теги по текстовому содержимому и доставать из найденно...
А подскажи, пожалуйста, как проверять на вхождение с начала строки, чтобы "содержимому" было первым словом в строке? А то как ни пробую, не пойму синтаксиса.
Затык на инструменте BR. На странице есть ещё SBRF и VTBR, которые не нужны. Остальные с горем пополам находятся. Как я только этот BR в списке не писал. Или ошибку выбрасывает или находит не тот инструмент. Вообще, может и с другими инструментами такая же хрень получится, поэтому их бы тоже пожестче проверять. После дефиса в названии инструмента идёт дата, она периодически меняется.
tools = ['RTS-', 'Si-', 'Eu-', r"BR-*", 'SILV-', 'GOLD-']
def get_link(soup, tool):
link = soup.find('a', href=True, string=re.compile(tool))
print(link['href'])
def main():
# этот код я убрал, тут нажимается кнопка и вытаскивается код страницы
blocks_list = driver.find_element_by_class_name('blocks-list')
soup = BS(blocks_list.get_attribute('innerHTML'), 'html.parser')
#save_to_file(soup, 'soup.txt')
for tool in tools:
try:
link = get_link(soup, tool)
except(Exception):
print(Exception)
finally:
driver.quit()
if __name__ == '__main__':
main()