как получить ссылку href последней версии только в Selenium python

#python #selenium

#python #селен

Вопрос:

Мне нужна ссылка на последнюю версию csv. Если появится новая версия, я выберу последнюю ссылку href.

Вывод: — https://www.nucc.org/images/stories/CSV/nucc_taxonomy_201.csv

  home_page1 = "https://www.nucc.org/index.php/code-sets-mainmenu-41/provider-taxonomy-mainmenu-40/csv-mainmenu-57"
driver = webdriver.Chrome("xx\xx\chromedriver.exe")
driver.get(home_page1)
elements = driver.find_elements_by_css_selector("li a")
for link in elements:
    print(link.get_attribute('href'))
  

введите описание изображения здесь

Комментарии:

1. Я подозреваю, что версия в этом случае равна 201? Вы можете либо использовать регулярное re.match(".*_(d )..*", "https://www.nucc.org/images/stories/CSV/nucc_taxonomy_201.csv").groups() выражение, либо, если формат соответствует split() . и _

2. хотите избежать разделения и регулярных выражений, ища способ, который напрямую дает последнюю ссылку

3. Почему вы выступаете против регулярных выражений? Есть ли какая-либо причина, по которой это должно быть сделано с использованием selenium?

4. Да, на самом деле было предложено использовать Selenium. Я уже пробовал этот способ. Спасибо

Ответ №1:

Используя некоторые regex в сочетании с BeautifulSoup :

 from bs4 import BeautifulSoup
import re
soup = BeautifulSoup(driver.page_source)

#Find the tag containing the text 'current version'
current_version_tag = soup.find('p',text=re.compile('current version'))
#The download link will be the first link after it
download_link = "https://www.nucc.org"   current_version_tag.find_next("a").get('href')
  

Вывод

 'https://www.nucc.org/images/stories/CSV/nucc_taxonomy_201.csv'
  

Ответ №2:

iv просмотрел веб-сайт, и кажется, что вы можете сделать это с помощью selenium «find_element_by_xpath». iv прикрепил фотографию.введите описание изображения здесь

итак, правильный XPATH

 //*[@id="main"]/div[2]/div/div/div[3]/div/ul[1]/li/a
  

пожалуйста, проверьте, работает ли он снова, когда появится новая версия.

и затем вы можете найти ее с помощью этой команды :

 login_form = driver.find_element_by_xpath("//*[@id="main"]/div[2]/div/div/div[3]/div/ul[1]/li/a")
  

дайте мне знать, если это было полезно.

Комментарии:

1. Это сломается, если структура веб-сайта изменится незначительно

2. могу ли я узнать, как вы получили консоль черного цвета для соответствия

3. свяжите его с надстройкой Google Chrome. И Филип прав в отношении структуры веб-сайта, но, как вы упомянули, я дал вам решение с использованием Selenum. хотя я бы сделал это только с запросами.