Получить порт из ответа python запросов - PullRequest
0 голосов
/ 06 августа 2020

Я использую волшебную 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

...