import requests
from bs4 import BeautifulSoup
from pprint import pprint
url = 'http://www.zagrya.ru/'
headers = {
'Accept': 'text/html,application/xhtml+xml,application/xml;q=0.9,image/avif,image/webp,image/apng,*/*;q=0.8,application/signed-exchange;v=b3;q=0.9/',
'User-Agent': 'Mozilla/5.0 (Windows NT 6.1) AppleWebKit/537.36 (KHTML, like Gecko) Chrome/86.0.4240.183 Safari/537.36',
}
html = requests.get(url, headers=headers)
soup = BeautifulSoup(html.content)
# словарь, в который записываются НАЗВАНИЯ всех категорий на сайте и ССЫЛКИ на них
categories = {}
for cat in soup.find_all('a', {"class": "hor-menu__lnk"}):
name = cat.find("span", {"class":"hor-menu__text"}).get_text()
url = "http://www.zagrya.ru" + cat.attrs['href']
categories[name] = url
print(categories)
# {
# 'НОВИНКИ': 'http://www.zagrya.ru/category/category_2578/',
# 'КНИГИ': 'http://www.zagrya.ru/category/knigi/',
# 'ИГРУШКИ': 'http://www.zagrya.ru/category/igrushki/',
# 'КАНЦТОВАРЫ': 'http://www.zagrya.ru/category/category_2639/',
# 'УЧЕБНАЯ ЛИТЕРАТУРА': 'http://www.zagrya.ru/category/uchyebnaya-lityeratura/',
# 'ЭНЦИКЛОПЕДИИ': 'http://www.zagrya.ru/category/entsiklopyedii/',
# 'РАСПРОДАЖА': 'http://www.zagrya.ru/category/rasprodazha_1/'
# }
# словарь, в который записываются НАЗВАНИЯ всех категорий и их ПОДКАТЕГОРИИ
subcategories = {}
for k, v in categories.items():
# перебираем все ссылки/переходим по ним
html = requests.get(v, headers=headers)
soup = BeautifulSoup(html.content)
sub_list = []
for subcat in soup.find_all("div", {"class": "subcat-wrapper__item sub-cat-nobd"}):
sub_list.append(subcat.find("div", {"class": "sub-cat__title"}).get_text())
subcategories[k] = sub_list
# вывод на экран
for k,v in subcategories.items():
print(k)
pprint(v)
# Грошь - цена Вам, как специалисту, если Вы самостоятельно не разберётесь
# с тэгами и работай библиотек Requests и BeautifulSoup
import requests
from bs4 import BeautifulSoup
url = 'http://www.zagrya.ru/'
headers = {
'Accept': 'text/html,application/xhtml+xml,application/xml;q=0.9,image/avif,image/webp,image/apng,*/*;q=0.8,application/signed-exchange;v=b3;q=0.9/',
'User-Agent': 'Mozilla/5.0 (Windows NT 6.1) AppleWebKit/537.36 (KHTML, like Gecko) Chrome/86.0.4240.183 Safari/537.36',
}
def get_html(url):
r = requests.get(url, headers=headers)
return r
def get_content(html):
soup = BeautifulSoup(html.content)
items = soup.find_all('li', {"class": "hor-menu__item has-subm"})
tovari = []
category = {}
for item in items:
tovari.append(item.find('a', {'class':'hor-menu__lnk'}).find('span', {'class':'hor-menu__text'}).get_text())
category['karegorii'] = tovari
return category
html = get_html(URL)
print(get_content(html))
otzivi.extend(get_content(html.text))
# если такой класс встречается в html-коде только ОДИН раз, то код такой:
soup = BeautifulSoup(resp, 'html.parser')
appeals = soup.find('span', {'class': 'tlid-translation translation'}).get_text().strip()
bot.send_message(message.chat.id, appeals)
# если НЕСКОЛЬКО раз, то код такой:
soup = BeautifulSoup(resp, 'html.parser')
appeals = [s.get_text().strip() for s in soup.find_all('span', {'class': 'tlid-translation translation'})]
for app in appeals:
bot.send_message(message.chat.id, app)
list_address = ["Киевская обл. , г. Киев, ул. Крещатик, дом 10, кв. 8",
"Киевская обл. , г. Киев, ул. Крещатик, 2, 12",
"Киевская обл. , г. Киев, ул. Крещатик, д.20, кв.118",
"Киевская обл. ; Киев; Крещатик; 50-8",
"Киевская обл. , г. Киев, пл. Незалежности, д.12-а, строение 3, помещение 8, офис. 33",]
for adr in list_address:
# допустим разделитель запятая
# и корректный адрес должен состоять из 5 частей
region, city, street, house, flat = "", "", "", "", "",
if adr.count(",") == 4:
adr = adr.split(",")
region = adr[0]
city = adr[1]
street = adr[2]
house = adr[3]
flat = adr[4]
print(region, city, street, house, flat)
# распарсятся три адреса и пяти:
# Киевская обл. г. Киев ул. Крещатик дом 10 кв. 8
# Киевская обл. г. Киев ул. Крещатик 2 12
# Киевская обл. г. Киев ул. Крещатик д.20 кв.118
import requests
from bs4 import BeautifulSoup
url1 = 'https://vstup.osvita.ua/y2020/r27/82/706500/'
headers = {'User-Agent': 'Mozilla/5.0 (Windows NT 10.0; Win64; x64) AppleWebKit/537.36 (KHTML, like Gecko) Chrome/84.0.4147.105 Safari/537.36'}
cs = requests.get(url1, headers=headers)
# допустим фамилия вот такая
lname = "Сокол"
soup = BeautifulSoup(cs.content, 'html.parser')
table = soup.find("table", {"class": "rwd-table"})
list_family = []
for tr in table.find_all("tr", {"class": "rstatus6"}):
for td in tr.find_all("td"):
if td["data-th"] == "ПІБ":
list_family.append(td.get_text())
# print(list_family)
# print()
result = []
for family in list_family:
# print(family)
print(family.lower().split(" ")[0])
if lname.lower() in family.lower().split(" ")[0]:
print("ok")
result.append(family)
print("=="*30)
if len(result) > 0:
print(result)
else:
print("Такой абитуриент не найден")