На этой странице , под списком "Зависимости" есть два типа URL. Один из них с официального сайта пакета ("https://archlinux.org/packages/"), а другой с сайта пользовательского пакета (" https://aur.archlinux.org/packages/"). Я хочу извлечь их как отдельный список. Согласно это документация BeautifulSoup , я до сих пор придумал что-то вроде этого:
sauce = urllib.request.urlopen("https://aur.archlinux.org/packages/blockify/").read()
soup = bs.BeautifulSoup(sauce, 'lxml')
official_dependencies = []
aur_dependencies = []
for h3 in soup.find_all('h3'):
if "Dependencies" in h3.text:
for url in h3.find_all_next('a', attrs={'href': re.compile("^https://www.archlinux.org/packages/")}):
official_dependencies.append(url.get('href'))
это хорошо работает с моей первой целью. Но я не уверен, как мне извлечь aur зависимостей, потому что их href
- это что-то вроде /packages/package_name/
вместо https://aur.archlinux.org/packages/package_name/
. А также, есть некоторые зависимости aur, написанные в скобках рядом с официальными именами пакетов. Например, alsa-utils (alsa-utils-transparent)
. Я хочу не пересматривать эти альтернативные пакеты.
Я относительно новичок в bs4 и не знаю регулярных выражений, поэтому я был немного озадачен тем, как мне следует подходить к этой проблеме. Я был бы рад, если бы кто-нибудь показал мне способ решения этой проблемы.
Спасибо