Парсинг вэб-страниц - шаг 0



Дело было вечером, делать было нечего. Значит самое время начать пробовать себя в парсинге вэба. Всё было бы хорошо, но на глаза попалась библиотека webbrowser которая умеет открывать по запросу браузер. В общем захотелось и её попробовать.

Но, и парсить тоже хочется. Значит я придумал такую штуку:
1 - Проверяем работает ли сайт. Отправляем запрос и получаем ответ в виде кода.
2 - Если код нам не знаком, программка предлагает открыть сайт с расшифровкой данного кода.

Всё, больше ничего. Функционал так себе. Но, есть возможность начать базовое ознакомление с библиотекой request и так же поиграться с библиотекой webbrowser.

Импортируем нужные библиотеки:
import requests import webbrowser

Документации: requests и webbrowser

Дальше зададим адрес сайта от которого хотим получить ответ и напишем функцию которая будет выдавать Статус Код:
url = "https://www.zlomorda.net/" def httpRequest(): """ Функция обращается по адресу и печатает Статус Код """ # Отправка запроса по адресу http_answer = requests.get(url) # Получам только номер кода http_status_code = http_answer.status_code print("Код ответа {}".format(http_status_code))

Дальше напишем функцию которая собирает адрес сайта с расшифровкой кода и открывает его в браузере:
def statusCodeHelper(status_code): """ Функция пытается найти страницу с определённым кодам для расшифровки. Если страница не найдена, то открывается страница с общими данными по кодам статуса. """ user_answer = input("Для информации нажмите ENTER ") if user_answer == "": # Если был нажат ENTER, тогда программка созда линк на страницу с данным кодом url = "https://developer.mozilla.org/en-US/docs/Web/HTTP/Status/" + \ str(status_code) # Проверка статуса данного линка http_answer = requests.get(url) http_status_code = http_answer.status_code # Если такой страницы нет, откроется общая страница по кодам статуса # Если такая страница есть, тогда программка откроет её в браузере if http_status_code == 404: webbrowser.open( "https://www.tutorialspoint.com/http/http_status_codes.htm", new=2) else: webbrowser.open(url, new=2)

Может получится так, что по соборному адресу ничего нет (код 404), в таком случае откроется страница с общими описаниями кодов статуса. А если такая страница есть, то программка её откроет.

Конечно, здесь хватает дыр и недочетов, но суть была в другом... просто попробовать, и оно получилось. А это значит, что можно двигаться дальше.

Полный код на моём GitHub-e.

Всем удачи!!

Комментариев нет:

Отправить комментарий