Проверьте следующий скрипт, который делает именно то, что вы хотите достичь.Я использовал библиотеку requests
вместо urllib3
.Основная ошибка, которую вы допустили, заключается в том, что вы искали ссылку magnet
в неправильном месте.Вам нужно пройти один слой глубже, чтобы выкопать эту ссылку.Попробуйте использовать quote
вместо манипуляции со строками, чтобы соответствовать поисковому запросу в URL-адресе.
Сделайте это:
import requests
from urllib.parse import urljoin
from urllib.parse import quote
from bs4 import BeautifulSoup
keyword = 'The Last Of The Mohicans'
url = 'https://www.yify-torrent.org/search/'
base = f"{url}{quote(keyword)}{'/p-1/all/all/'}"
res = requests.get(base)
soup = BeautifulSoup(res.text,'html.parser')
tlink = urljoin(url,soup.select_one(".img-item .movielink").get("href"))
req = requests.get(tlink)
sauce = BeautifulSoup(req.text,"html.parser")
title = sauce.select_one("h1[itemprop='name']").text
magnet = sauce.select_one("a#dm").get("href")
print(f"{title}\n{magnet}")