Я использую волшебную python библиотеку запросов .
Мне нужно выяснить, какой порт запрос использовался для подключения к серверу.
I проверил школу W3 do c: Python requests.Response Object Но нет ни одного объекта, который бы удовлетворял мою потребность.
Я почти уверен, что это выполнимо, как запрос автоматически найти нужный порт. Я должен правильно указать порт в ответе?
Зачем мне нужен порт? Иногда веб-сервер отвечает на нестандартный порт, например 8080 или около того. И я ссылаюсь на URL-адрес с их портами.
Этот код не работает для веб-сайтов, которые не используют стандартный порт
url = 'https://google.fr'
resp = requests.get(url, verify=False, timeout=2)
print(resp.text)
Это то, что я сейчас использую:
adapter = requests.adapters.HTTPAdapter(max_retries=1)
resp_res = {'lines': 0, 'resp_code': 0, 'port': 'N/A', 'history': [], 'final_url': ''}
session = requests.Session()
url01 = 'https://google.fr'
# Prepares a special HTTP request with a specific adapter
session.mount(url01, adapter)
# Send an hTTPS request
try:
resp = session.get(url01, verify=False, timeout=2)
# Readible result
resp_soup = BeautifulSoup(resp.text,"html.parser")
except (requests.ConnectionError, requests.HTTPError, requests.Timeout,
requests.TooManyRedirects) as e: # HTMLParser.HTMLParseError
logging.error('scrap_website - HTTPS connection failed')
logging.error(e)
else:
resp_res['lines'] = len(str.splitlines(str(resp_soup.prettify())))
resp_res['resp_code'] = resp.status_code
resp_res['port'] = 'HTTPS'
resp_res['history'] = resp.history
resp_res['final_url'] = resp.url
См. Для 'resp_res [' port ']', мне нужно выяснить, какой порт прослушивает сервер.
Есть идеи?
Steackfrite