EDIT1:
Я обнаружил ошибку в исходном коде, которая выдала мне ошибку типа.Итак, ответ был здесь: BeautifulSoup - модифицировать все ссылки в куске HTML? .Теперь код работает.
У меня есть HTML-файл, я хочу изменить часть URL-адреса href для других и снова сохранить его в виде HTML-файла.Моя цель состоит в том, чтобы при открытии html-файла и нажатии на ссылку он переместил меня во внутреннюю папку, а не в URL-адрес в Интернете (исходный).
Я имею в виду, я хочу преобразовать это:<a href="http://www.somelink.com">
в это: <a href="C:/myFolder/myFile.html">
.
Я пытался открыть файл с помощью bs4 и использовать функцию замены, но я получаю TypeError: 'NoneType' object is not callable
Это мой код:
# Dict which relates the original links with my the ones to replace them
links_dict = { original_link1 : my_link1 , original_link2 : my_link2 } # and so on..
# Get a list of links to loop and find them into the html file
original_links = links_dict .keys()
soup = BeautifulSoup(open(html_file), "html.parser",encoding="utf8")
# This part is where I am stuck, the theory is loop through 'original_links'
and if any of those links is found, replace it with the one I have in 'links_dict'
for link in soup.find_all('a',href=True):
if link['href'] in links_dict:
link['href'] = link['href'].replace(link['href'],links_dict[link['href']]
with open("new_file.html", "w",encoding="utf8") as file:
file.write(str(soup))
Любые идеи