хотите помочь? Вот ваши варианты:","Crunchbase","О нас","Спасибо всем за потрясающую поддержку!","Быстрые ссылки","Партнерская программа","Премиум","ProxyScrape премиум-проба","Проверка прокси-сервера онлайн","Типы прокси","Страны-посредники","Примеры использования прокси-сервера","Важно","Политика использования файлов cookie","Отказ от ответственности","Политика конфиденциальности","Условия и положения","Социальные сети","Facebook","LinkedIn","Twitter","Quora","Telegram","Дискорд","\n © Copyright 2025 - Thib BV | Brugstraat 18 | 2812 Mechelen | Belgium | VAT BE 0749 716 760\n"]}
Веб-скреппинг стал жизненно важным навыком для разработчиков на Python, аналитиков данных и всех, кто работает с массивами данных. Когда речь идет о структурированных и богатых данных, таблицы, найденные на веб-сайтах, часто являются золотыми жилами информации. Если вы ищете в Интернете каталоги товаров, спортивную статистику или финансовые данные, умение извлекать и сохранять табличные данные с помощью Python - бесценный инструмент.
В этом практическом руководстве вы шаг за шагом узнаете, как с помощью Python собирать таблицы с веб-сайтов. В конце вы узнаете, как использовать популярные библиотеки, такие как requests, Beautiful Soup и даже pandas, для доступа к табличным данным и их сохранения в форматах, пригодных для повторного использования, таких как CSV-файлы.
Прежде чем мы перейдем к техническим деталям, вот что вам понадобится для работы:
Для установки необходимых библиотек мы воспользуемся командой pip. Просто выполните следующую команду в терминале, чтобы завершить установку:
pip install requests beautifulsoup4 pandas
Первым шагом в любом проекте веб-скреппинга является анализ структуры целевого сайта. В этом примере мы будем собирать данные с сайта-образца, на котором представлена таблица, отображающая турнирную таблицу хоккейных команд. Ниже представлен предварительный просмотр таблицы:
Вот как эта таблица выглядит в структуре HTML.
Первым шагом будет получение веб-страницы, которую вы хотите соскоблить. Мы воспользуемся библиотекой requests, чтобы отправить HTTP-запрос и получить HTML-содержимое с фиктивного сайта, который мы используем для получения содержимого таблицы
url = "https://www.scrapethissite.com/pages/forms/"
response = requests.get(url)
if response.status_code == 200:
print("Page fetched successfully!")
html_content = response.text
else:
print(f"Failed to fetch the page. Status code: {response.status_code}")
exit()
В HTML таблица - это структурированный способ представления данных в виде строк и столбцов, как в электронной таблице. Таблицы создаются с помощью функции <table>
тег, а их содержимое разделено на строки (<tr>
) и клетки (<td>
для ячеек данных или <th>
для ячеек заголовка). Вот краткое описание структуры таблицы:
<table>
теги, он выступает в качестве контейнера для всех строк и ячеек.<tr>
(строка таблицы) представляет собой горизонтальный фрагмент таблицы.<td>
Теги хранят отдельные значения данных (или <th>
теги для заголовков). Например, в этом сценарии мы находим <table>
тег с определенным классом (class="table"
) и извлеките его строки и ячейки с помощью Прекрасный суп. Это позволяет систематизировать данные и подготовить их для анализа или сохранения.
soup = BeautifulSoup(html_content, "html.parser")
table = soup.find("table", {"class": "table"})
if not table:
print("No table found on the page!")
exit()
В этом шаге мы сохраним извлеченные данные таблицы в CSV-файл для дальнейшего использования, а также отобразим их в виде pandas DataFrame, чтобы вы могли увидеть, как структурированы данные. Сохранение данных в формате CSV позволит вам позже проанализировать их в таких инструментах, как Excel, Google Sheets или сам Python.
headers = [header.text.strip() for header in table.find_all("th")]
rows = []
for row in table.find_all("tr", class_="team"):
cells = [cell.text.strip() for cell in row.find_all("td")]
rows.append(cells)
df = pd.DataFrame(rows, columns=headers)
csv_filename = "scraped_table_data_pandas.csv"
df.to_csv(csv_filename, index=False, encoding="utf-8")
print(f"Data saved to {csv_filename}")
Когда вы запустите этот код, pandas создаст файл с именем scraped_table_data.csv
в рабочем каталоге, а извлеченные данные будут выведены в консоль следующим образом:
Название команды Год Выигрыши Проигрыши ОТ Проигрыши Победа % Голы за (GF) Голы против (GA) + / -
0 Бостон Брюинз 1990 44 24 0.55 299 264 35
1 Баффало Сэйбрз 1990 31 30 0.388 292 278 14
2 Калгари Флэймз 1990 46 26 0.575 344 263 81
3 Чикаго Блэкхокс 1990 49 23 0.613 284 211 73
4 Детройт Ред Уингз 1990 34 38 0.425 273 298 -25
Ниже приведен полный Python-скрипт для извлечения табличных данных с веб-сайта, сохранения их в CSV-файл и отображения извлеченных данных. Этот сценарий объединяет все шаги, описанные в этом руководстве, в единый последовательный рабочий процесс.
import requests
from bs4 import BeautifulSoup
import pandas as pd
url = "https://www.scrapethissite.com/pages/forms/"
response = requests.get(url)
if response.status_code == 200:
print("Page fetched successfully!")
html_content = response.text
else:
print(f"Failed to fetch the page. Status code: {response.status_code}")
exit()
soup = BeautifulSoup(html_content, "html.parser")
table = soup.find("table", {"class": "table"})
if not table:
print("No table found on the page!")
exit()
headers = [header.text.strip() for header in table.find_all("th")]
rows = []
for row in table.find_all("tr", class_="team"):
cells = [cell.text.strip() for cell in row.find_all("td")]
rows.append(cells)
df = pd.DataFrame(rows, columns=headers)
csv_filename = "scraped_table_data_pandas.csv"
df.to_csv(csv_filename, index=False, encoding="utf-8")
print(df.head())
print(f"Data saved to {csv_filename}")
В этом руководстве вы шаг за шагом пройдете весь процесс: поймете структуру сайта, извлечете данные и сохраните их для анализа. Независимо от того, создаете ли вы наборы данных для исследований, автоматизируете сбор данных или просто изучаете возможности веб-скреппинга, освоение этих методов откроет перед вами мир возможностей.
В процессе поиска вы можете столкнуться с такими проблемами, как запрет IP-адресов или ограничения скорости, наложенные веб-сайтами. Именно здесь прокси-серверы играют решающую роль. Прокси позволяют:
ProxyScrape Компания предлагает широкий спектр прокси-серверов, включая бытовые, премиум, выделенные и мобильные прокси-серверы, предназначенные для веб-скрапинга. Их надежные и масштабируемые прокси-решения помогут вам справиться с масштабными проектами по скраппингу без перебоев, обеспечивая бесперебойный и эффективный сбор данных.