CoderCastrov logo
CoderCastrov
Парсер

Как парсить веб-страницы с помощью Python

Как парсить веб-страницы с помощью Python
просмотров
2 мин чтение
#Парсер

Парсинг веб-страниц - это метод сбора данных из интернета. Согласно Википедии, парсинг веб-страниц это:

Парсинг веб-страниц, сбор данных с веб-страниц или извлечение данных из веб-страниц - это сбор данных с веб-сайтов. Программное обеспечение для парсинга веб-страниц может получать доступ к Всемирной паутине непосредственно с использованием протокола передачи гипертекста или через веб-браузер.

Здесь мы будем парсить веб-страницы с использованием библиотеки Beautiful Soup для Python.

Давайте сразу же попробуем парсить веб-страницу с новостного сайта Kompas.com, связанную с радостной новостью для студентов.

Вы также можете попробовать парсить другие веб-сайты. Хорошо, давайте перейдем к кодированию:


Импорт библиотек

Сначала мы импортируем библиотеки, которые будем использовать, а именно requests и Beautiful Soup:

import requests
from bs4 import BeautifulSoup

Парсинг

Напишите следующий код, где переменная page - это адрес веб-сайта, который мы хотим спарсить.

page = requests.get('https://www.kompas.com/edu/read/2020/06/19/152034871/ini-kebijakan-baru-mendikbud-nadiem-soal-keringanan-ukt-mahasiswa')
soup = BeautifulSoup(page.text, 'html.parser')

Затем мы должны проверить, успешно ли получен ответ от запроса.

if page.status_code==200:
   print('Success')

Если вывод из команды выше "Success", то мы можем перейти к следующему шагу.

Откройте целевой веб-сайт снова, а затем мы должны посмотреть на структуру HTML этого веб-сайта. Мы можем использовать функцию, предоставленную веб-браузером, такую ​​как Chrome или другой, а именно Inspect. Существует 2 способа:

Затем мы ищем элемент веб-сайта, содержащий информацию или данные, которые мы хотим использовать.

Если вы нашли элемент, содержащий нужную информацию, то напишите следующий код. В этом случае я хочу получить текст новости на этом веб-сайте, который, кстати, находится в элементе <p>.

articles = soup.find_all('p')
for p in articles:
    print(p.text)

Намерение команды выше заключается в том, чтобы система найти все элементы p, и каждый элемент p будет поочередно печататься системой. Вот весь код, объединенный.

import requests
from bs4 import BeautifulSoup
import pandas as pdpage = requests.get('https://www.kompas.com/edu/read/2020/06/19/152034871/ini-kebijakan-baru-mendikbud-nadiem-soal-keringanan-ukt-mahasiswa')
soup = BeautifulSoup(page.text, 'html.parser')
if page.status_code==200:
   articles = soup.find_all('p')
   for p in articles:
      print(p.text)

Вы также можете использовать следующую команду, чтобы напечатать каждый элемент.

for p in soup.find_all('p'):
    print(p.text)

Вот пример вывода кода выше. Довольно полезно, не так ли?

Хорошо, пока все, до встречи в следующий раз......