Хотел распарсить сайт биржи binance.com/ru/markets/spot-USDT
и получить все названия валют. У меня получилось распарсить первую страницу и получить все нужные данные.
Но там на сайте в общем 7 страниц и не получается распарсить остальные страницы и ссылку на следующию страницу он не введет.
Для парсинга использовал библиотеку bs4, request
Помогите распарсить остальные страницы. Как это сделать?
вот мой код парсера:
from bs4 import BeautifulSoup
import requests
HOST = "https://www.binance.com"
URL = "https://www.binance.com/ru/markets/spot-USDT"
HEADERS = {
'User-Agent':'Mozilla/5.0 (X11; Ubuntu; Linux x86_64; rv:100.0) Gecko/20100101 Firefox/100.0',
"accept": "text/html, application/xhtml+xml, application/xml;q=0.9, */*;q=0.8"
}
def get_html(url: str, params=' '):
# это функция получает данные из сайта #
return requests.get(url, headers=HEADERS, params=params)
html = get_html(URL)
def get_content(html) -> list:
soup = BeautifulSoup(html.text, 'html.parser')
items = soup.find_all('div', class_='css-72ldqd')
new_list = []
for item in items:
title = item.find_all('div', class_='css-17wnpgm')
for i in title:
new_list.append({
'title': i.get_text()
})
return new_list
def save(items: list, path: str):
with open(path, 'w') as file:
for num, item in enumerate(items, 1):
file.write(f"№ N{num} - Crypto: {item['title']}\n")
def parse(page):
html = get_html(URL)
if html.status_code == 200:
new_list = []
for pg in range(1, page+1):
html = get_html(URL, params={'page':pg})
new_list.extend(get_content(html))
print(f'Страница {pg} готово!')
save(new_list, 'binance_parsing/all_cripto_name.txt')
print('Парсинг прошел успешно')
else:
print('Не удалось подключиться к сайту')
parse(7)