Member 13725914 Ответов: 1

Имеет ли значение указание протокола HTTP?


Есть ли разница между этими двумя объектами bs4?

from urllib2 import urlopen, Request
from bs4 import BeautifulSoup

req1 = Request("https://stackoverflow.com/")  # HTTPS
html1 = urlopen(req1).read()

req2 = Request("http://stackoverflow.com/")  # HTTP
html2 = urlopen(req2).read()

bsObj1 = BeautifulSoup(html1, "html.parser")
bsObj2 = BeautifulSoup(html2, "html.parser")

Вам действительно нужно указать протокол HTTP?

Что я уже пробовал:

Я попытался сравнить эти два, но, похоже, ничего не вышло

Richard MacCutchan

- похоже, ничего не вышло."
Что именно это означает?

1 Ответов

Рейтинг:
5

Richard Deeming

Первый из них сделает безопасный запрос.

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

Использование первой версии позволит избежать дополнительного запроса и любой возможности передачи данных по небезопасному соединению. Это также снимет любой вопрос о том, прозрачно ли ваша библиотека кода обрабатывает перенаправление.

Другими словами: указание протокола HTTP (а не HTTPS) экономит ввод одного символа за счет введения потенциальной проблемы безопасности в ваше приложение.