Как превратить в BeautifulSoup сохраненный HTML файл?
Появилась необходимость поработать через BeautifulSoup4 с сохраненной локально страницей из интернета. Проблема в том, что почему то не получается передать содержимое файла в bs4 - первый print (для супа из файла) выдает 'None', хотя второй корректен.
Код такой:
from bs4 import BeautifulSoup
import requests
with open ('mdk.html','r',encoding='utf-8') as f:
html = BeautifulSoup(f.read(), 'lxml')
r = requests.get('https://mdk-arbat.ru/info/12').content
alter = BeautifulSoup(r,'lxml')
print(html.find('address'))
print(alter.find('address'))
Ответы (3 шт):
Может стоит обратиться к class="tg-contactinfo"
У меня всё работает s = soup.find(class_='tg-contactinfo').find('address')
Элемент DOM-а с контактами можно найти через .find('ul', class_='tg-contactinfo'), а строки через .find_all('li') и потом обойти их в цикле:
import requests
from bs4 import BeautifulSoup
r = requests.get('https://mdk-arbat.ru/info/12')
soup = BeautifulSoup(r.content, 'html.parser')
contact_info = soup.find('ul', class_='tg-contactinfo')
contact_rows = contact_info.find_all('li')
for row in contact_rows:
print(row.text.strip())
выводит:
119019,Москва,
ул. Новый Арбат, 8
+7 (495) 789-35-91 сеть магазинов
+7 (495) 648-17-68 интернет-магазин
[email protected]
Попробуйте со своим html из файла делать то же самое?...
Решение проблемы нашлось - я сохранял исходный код страницы, а надо было саму страницу сохранять и уже ее превращать в Суп. Тогда все работает как надо. Всем спасибо!
