#python #html #iframe
#python #HTML #iframe
Вопрос:
<html>
<body>
<h2>HTML Iframes</h2>
<p>You can use the height and width attributes to specify the size of the iframe:</p>
<iframe src="https://www.google.com/maps/embed/v1/place?key=AIzaSyAPi0wzs7IlNc4nlL3atU7iCd-A9QXfuHsamp;q=4.5596,-76.2801amp;zoom=18amp;maptype=satellite" height="200" width="300"></iframe>
</body>
</html>
Итак, этот HTML-файл создан на моем компьютере, теперь мне нужно изменить то, что идет после src, на новую строку, например, эту —
Итак, как я могу добавить эту строку примера в html-файл после src=?
Комментарии:
1. итак, вы спрашиваете, как изменить
src
изiframe
тега?2. Да, мои данные URL меняются каждый день, и мне нужно постоянно обновлять src
3. вероятно, вам придется изменить его вручную
4. @AlexShakhnovskiy вы можете использовать
BeautifulSoup
, чтобы получить тег iframe и изменить src.5. Ну, я думал об этом, но он меняется каждые пару часов или около того, поэтому всякий раз, когда я запускаю код, мне приходится обновлять его. Это должно быть возможно, но я не знаю, как этого добиться
Ответ №1:
from bs4 import BeautifulSoup
htmlstr = '''
<html>
<body>
<h2>HTML Iframes</h2>
<p>You can use the height and width attributes to specify the size of the iframe:</p>
<iframe src="https://www.google.com/maps/embed/v1/place?key=AIzaSyAPi0wzs7IlNc4nlL3atU7iCd-A9QXfuHsamp;q=4.5596,-76.2801amp;zoom=18amp;maptype=satellite" height="200" width="300"></iframe>
</body>
</html>
'''
soup = BeautifulSoup(htmlstr)
iframe = soup.find('iframe')
iframe["src"] = "test"
print(soup)
это должно быть решением, которое вы ищете. замените iframe["src"] = "test"
ссылкой, которую вы хотите предоставить, и сохраните результат обратно в HTML-файл.
Комментарии:
1. Спасибо, но я попытался запустить его, и я получаю из bs4 import BeautifulSoup html = open (‘api.htm ‘).read() soup = BeautifulSoup(html) iframe = soup.find(‘iframe’) iframe[«src»] = «test» с помощью open(«output_api.html «, «w») в виде файла: file. написать (soup) распечатать (soup) Ошибка типа: объект ‘NoneType’ не поддерживает назначение элемента в строке 8
2. Я предполагаю, что он не нашел
iframe
тег и, следовательно,iframe["src"] = "test"
сбой. Вы прошлись по своему коду и проверили, выдает ли `soup = BeautifulSoup (html)` вам правильную страницу?3. @AlexShakhnovskiy действительно ли
soup
переменная содержитiframe
тег?4. @AlexShakhnovskiy теперь то, что не работает. Код, который я отправил вам, отлично работает для меня на
python 3.7.2
Я не хочу сказать, что я сварливый, но вам нужно выразиться понятнее, чтобы я мог вам помочь.5. Хорошо, ошибка нетипирования все еще существует, даже знаю, что он напечатал soup 1 раз со всей информацией, а затем он перестал печатать что-либо (это то, где я сейчас)