Starchik1 commited on
Commit
1483245
·
verified ·
1 Parent(s): 6d5f4f4

Update app.py

Browse files
Files changed (1) hide show
  1. app.py +46 -43
app.py CHANGED
@@ -1,50 +1,53 @@
1
  import streamlit as st
2
  import requests
3
  from bs4 import BeautifulSoup
4
- from urllib.parse import urljoin
5
-
6
- # Функция для загрузки HTML-страницы
7
- def fetch_page(url):
8
- try:
9
- response = requests.get(url)
10
- response.raise_for_status() # Генерирует исключение для неправильных ответов
11
- return response.text
12
- except requests.exceptions.RequestException as e:
13
- st.error(f"Ошибка при загрузке страницы: {e}")
14
- return None
15
-
16
- # Функция для парсинга страницы и извлечения данных
17
  def parse_page(html):
18
- try:
19
- soup = BeautifulSoup(html, 'html.parser')
20
- content = soup.find_all('div', class_='wap_view')
21
- if not content:
22
- return None
23
- return content
24
- except Exception as e:
25
- st.error(f"Ошибка при парсинге страницы: {e}")
26
- return None
27
-
28
- # Основная часть Streamlit приложения
29
  def main():
30
- st.title('Superetka ETKA WAP Viewer')
31
-
32
- url = "https://superetka.com/etka/wap.php"
33
- html = fetch_page(url)
34
- if html:
35
- content = parse_page(html)
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
36
  if content:
37
- for block in content:
38
- for elem in block.find_all(['p', 'a', 'img']):
39
- if elem.name == 'a' and elem.get('href'):
40
- link_url = urljoin(url, elem.get('href'))
41
- st.markdown(f"[{elem.text}]({link_url})")
42
- elif elem.name == 'img' and elem.get('src'):
43
- img_url = urljoin(url, elem.get('src'))
44
- st.image(img_url, caption=elem.get('alt', ''))
45
- else:
46
- st.markdown(elem.prettify())
47
-
48
- # Запуск приложения
49
- if __name__ == "__main__":
50
  main()
 
1
  import streamlit as st
2
  import requests
3
  from bs4 import BeautifulSoup
4
+ from PIL import Image
5
+ from io import BytesIO
6
+
7
+ # Функция для получения HTML-кода страницы
8
+ def get_html(url):
9
+ response = requests.get(url)
10
+ return response.text
11
+
12
+ # Функция для парсинга страницы с помощью BeautifulSoup
 
 
 
 
13
  def parse_page(html):
14
+ soup = BeautifulSoup(html, 'html.parser')
15
+ return soup
16
+
17
+ # Основная функция для отображения информации
 
 
 
 
 
 
 
18
  def main():
19
+ st.title('Информация с сайта Superetka')
20
+
21
+ # URL для парсинга
22
+ url = 'https://superetka.com/etka/wap.php'
23
+
24
+ # Получаем HTML-код страницы
25
+ html = get_html(url)
26
+
27
+ # Парсим страницу
28
+ soup = parse_page(html)
29
+
30
+ # Ищем все заголовки
31
+ headings = soup.find_all(['h1', 'h2', 'h3', 'h4', 'h5', 'h6'])
32
+
33
+ # Выводим заголовки и их содержимое
34
+ for heading in headings:
35
+ st.header(heading.text.strip())
36
+
37
+ # Если есть изображение, выводим его
38
+ if heading.find_next('img'):
39
+ img_url = heading.find_next('img')['src']
40
+ img_response = requests.get(img_url)
41
+ img = Image.open(BytesIO(img_response.content))
42
+ st.image(img, caption='Изображение')
43
+
44
+ # Выводим текст под заголовком
45
+ content = heading.find_next_sibling()
46
  if content:
47
+ st.markdown(content.text.strip(), unsafe_allow_html=True)
48
+
49
+ st.write('---') # Разделитель между блоками
50
+
51
+ # Запускаем основную функцию
52
+ if __name__ == '__main__':
 
 
 
 
 
 
 
53
  main()