Видеокурс выложен на сайте Altube.ru вместо Youtube и плеер Altube не поддерживает субтитры. Прошу решить вопрос о предоставлении русских субтитров в этом англоязычном видеокурсе. |
Сетевые программы
23.8. Глоссарий
BeautifulSoup1Название происходит от распространенного выражения "tag soup" – суп, смесь из тегов, которое употребляется для плохо сформированных HTML-документов. Библиотека BeautifulSoup – "Прекрасный суп", по-видимому, хорошо разбирается в подобном супе. – прим. перев. : библиотека Питона для разбора HTML-документов и извлечения данных из них, которая, подобно большинству браузеров, принимает даже плохо сформированные HTML-документы. Код библиотеки BeautifulSoup можно скачать по адресу http://www.crummy.com
Порт: число, которое обычно определяет, с каким именно приложением вы общаетесь, когда устанавливается соединение с сервером через сокет. Например, передача данных во всемирной паутине обычно использует порт 80, электронная почта – порт 25.
Scrape – извлечение, дословно "выскабливание" данных: процесс, при котором сетевая программа, притворяясь веб-браузером, получает по сети веб-страницы и затем анализирует их содержимое. Часто подобные программы следуют по ссылкам, содержащимся в прочитанной странице, чтобы перейти к следующей странице и таким образом пройти всю сеть, например, социальную.
Сокет: сетевое соединение между двумя приложениями, при котором эти приложения могут посылать и принимать данные в обоих направлениях.
Паук (spider): способ работы сетевой поисковой машины, которая считывает страницу, затем все страницы, на которые она ссылается, и так далее, пока в конце-концов не будут пройдены почти все страницы в Интернет. Используется при построении поисковых систем.
23.9. Упражнения
Упражнение 23.1.
Измените использующую механизм сокетов программу socket1.py так, чтобы она сначала запрашивала у пользователя адрес веб-страницы (URL) и затем считывала её. Можно использовать разделитель '/' и строковый метод split для того, чтобы разбить URL на компоненты и извлечь адрес сетевого узла, который необходим при установке соединения через сокет. Добавьте проверку ошибок, используя конструкцию try-except, для обработки ситуации, когда пользователь ввел неправильно сформированный или несуществующий URL.
Упражнение 23.2.
Измените программу, использующую механизм сокетов, так, чтобы она подсчитывала количество полученных символов и прекращала печатать текст после того, как напечатано 3000 символов. Однако читать документ программа должна до конца – для подсчета числа символов во всём документе. По окончании чтения число символов должно быть напечатано.
Упражнение 23.3.
Используйте urllib для того, чтобы иным способом решить предыдущее упражнение:
- получить документ из сети,
- напечатать не более чем 3000 его начальных символов,
- подсчитать общее число символов в документе.
В данном упражнении можно не беспокоиться о заголовочной информации к документу, печатаются лишь первые 3000 символов его содержимого.
Упражнение 23.4.
Измените программу urllinks.py так, чтобы извлечь теги <p> ("paragraph" – абзац) из полученного HTML-документа, подсчитать их число и на выходе напечатать количество абзацев в документе. Не нужно печатать текст абзацев – только подсчитать их. Протестируйте вашу программу на нескольких небольших веб-страницах и затем попробуйте на каких-нибудь объемных страницах.
Упражнение 23.5 (более сложное).
Измените программу, использующую сокеты, так, чтобы она печатала только данные после того, как получены заголовочная информация и пустая строка. Помните, что метод recv получает символы (в том числе символ перехода на новую строку), а не строки.