搜索相同的链接和 return 第一个匹配项。 - Python BS4

Search through identical links and return first match. - Python BS4

我正在尝试收集输入,我希望打印第一个 link 匹配项。我似乎无法弄清楚所以我在这里。任何想法都会很棒谢谢

import bs4
from urllib.request import urlopen 
from bs4 import BeautifulSoup 
import re
import requests


result = requests.get("https://naruto-arena.net/characters-and-skills")
src = result.content
soup = BeautifulSoup(src, 'lxml')

links = soup.find_all("a", { "class" : "subjlink"})


name = input("Enter name: ")

for link in links:
href = (link.attrs['href'])
if name.lower() in href[30:].replace("-", "").lower():
    print(href)

结果:

输入姓名:火影忍者

https://naruto-arena.net/char/Uzumaki-Naruto

https://naruto-arena.net/char/Kyuubi-Naruto

https://naruto-arena.net/char/Uzumaki-Naruto-(S)

https://naruto-arena.net/char/Sennin-Naruto-(S)

https://naruto-arena.net/char/Four-Tail-Kyuubi-Naruto-(S)

https://naruto-arena.net/char/Kyuubi-Naruto-(S)

想要的结果:

https://naruto-arena.net/char/Uzumaki-Naruto

您的所有链接都匹配,"naruto" 接近所有链接的末尾。如果只想打印一个,则需要一个 break 语句。您似乎还错误地缩进了代码,因为 for 循环之后的行没有缩进。这是应该起作用的东西:

name = input("Enter name: ")
for link in links:
    href = (link.attrs['href'])
    if name.lower() in href[30:].replace("-", "").lower():
        print(href)
        break

希望对您有所帮助,编码愉快!