CSS:
Может быть, что-то вроде следующего, которое исключает на основе href
(также ограничивает href, начиная с http, и удаляет те, у которых есть класс .fl
. :not
. Псевдоклассу передается список условий - в этом случае, в основном, это подстроки исключить через оператор содержит.
.r [href^=http]:not(.fl,[href*=\.org],[href*=wikipedia])
Тестовый пример, приведенный ниже, с несколькими поисковыми запросами в разных странах
from selenium import webdriver
from selenium.webdriver.common.by import By
from selenium.webdriver.support.ui import WebDriverWait
from selenium.webdriver.support import expected_conditions as EC
from bs4 import BeautifulSoup as bs
d = webdriver.Chrome()
d.get('https://www.google.com/')
d.find_element_by_css_selector('[title=Search]').send_keys('python')
WebDriverWait(d, 5).until(EC.element_to_be_clickable((By.CSS_SELECTOR, '[type=submit]'))).click()
WebDriverWait(d,10).until(EC.presence_of_all_elements_located((By.CSS_SELECTOR,'.r')))
soup = bs(d.page_source, 'lxml')
links = [link['href'] for link in soup.select('.r [href^=http]:not(.fl,[href*=\.org],[href*=wikipedia])')]
print(links)