Когда вы изначально создаете сокет подключения, ваша операционная система резервирует «файловое» пространство (в кавычках специально, не вдаваясь в него сейчас), которое вы создаете на своей машине.Затем операционная система назначает порт в вашей системе для созданного вами файлового пространства и возвращает вам дескриптор файла, описывающий его местоположение.Этот порт используется для отправки и получения данных.
Когда вы запускаете метод connect
для подключения к какому-либо URL-адресу Google, библиотека socket
автоматически решает, что для установления соединения следует использовать определенный протокол,и делает некоторую начальную связь с сервером, чтобы создать поток.В этом потоке вы отправите один запрос, разделитесь на пакеты одинакового размера и получите ответ от сервера таким же образом.
Чтобы создать запрос, который в основном представляет собой просто строку, отправляемую первоначально на серверы Google, которая сообщает им, что вы хотите и, что более важно, как вы хотите, нам нужно сделать что-то дополнительное, называемое запросом SSL.Если вы заметите, правильный URL-адрес для Google - https://google.com
, а не http://google.com
(хотя последний перенаправляет), потому что вы хотите договориться об определенном частном ключе, чтобы зашифровать ваше сообщение и скрыть его от других, которые могут его видеть.После того как вы совершили магию connect
, вы отправляете этот запрос SSL с помощью метода send
, обычно запрос автоматически создается библиотекой Python.Затем вы получите ваш ответ, который представляет собой заголовки ответа (значения отображаются друг на друга, давая вам некоторую начальную информацию о том, что вы получаете), а затем ваше тело, которое является HTML-кодом.
Давайте углубимся в запрос немного подробнее.Когда вы отправляете поиск в Google, он сохраняется в запрошенном вами URL-адресе.как сказал @ user2357112, поиск new apple iphone
становится https://www.google.com/search?q=new+apple+iphone&...
.Все до знака равенства - это GET parameter
, а после него - его значение.Для ваших целей вам важна только часть q=
, которая представляет собой ключевые слова, введенные вами в строку поиска.Все остальное должно оставаться прежним, разделенным амперсандами (&).
После того, как вы отправили запрос на этот URL и получили свой HTML-ответ, вы должны проанализировать его, чтобы получить результаты поиска.Пожалуйста, сделайте отдельный вопрос для этого, если вам нужно, поскольку каждый пост должен иметь только один вопрос.