Почему веб-сайт NSE не отвечает на запрос GET от виртуальной машины GCP, а отвечает на запросы с локального компьютера? - PullRequest
0 голосов
/ 09 марта 2020

Я пытаюсь получить веб-сайт NSE, используя Python следующим образом:

from requests import Session

headers = {
        "Host": "www1.nseindia.com",
        "Referer": "https://www1.nseindia.com/products/content/equities/equities/eq_security.htm",
        "X-Requested-With": "XMLHttpRequest",
        "User-Agent": "Mozilla/5.0 (Windows NT 10.0; Win64; x64) AppleWebKit/537.36 (KHTML, like Gecko) Chrome/80.0.3987.132 Safari/537.36",
        "Accept": "*/*",
        "Accept-Encoding": "gzip, deflate, br",
        "Accept-Language": "en-GB,en-US;q=0.9,en;q=0.8",
        "Cache-Control": "no-cache",
        "Connection": "keep-alive",}

s = Session()
s.headers.update(headers)
url = "https://www.nseindia.com"
r = s.get(url)
print(r.text)

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

Это может означать, что веб-сайт NSE блокирует мой виртуальный IP-адрес, чтобы изолировать эту проблему, я попытался подключиться с помощью командной строки OpenSSL, которая снова работает с моей локальной машины, но не с виртуальной машины GCP. Дополнительные сведения - от виртуальной машины, к которой она подключается, к серверу NSE выполняет SSL-квитирование, но после этого ответа нет -

$ openssl s_client -connect www.nseindia.com:443
CONNECTED(00000005)
depth=2 C = US, O = DigiCert Inc, OU = www.digicert.com, CN = DigiCert Global Root CA
verify return:1
depth=1 C = US, O = DigiCert Inc, OU = www.digicert.com, CN = GeoTrust RSA CA 2018
verify return:1
depth=0 C = IN, ST = Maharashtra, L = Mumbai, O = National Stock Exchange of India Ltd., OU = IT, CN = www.nseindia.com
verify return:1
---
Certificate chain
 0 s:C = IN, ST = Maharashtra, L = Mumbai, O = National Stock Exchange of India Ltd., OU = IT, CN = www.nseindia.com
   i:C = US, O = DigiCert Inc, OU = www.digicert.com, CN = GeoTrust RSA CA 2018
 1 s:C = US, O = DigiCert Inc, OU = www.digicert.com, CN = GeoTrust RSA CA 2018
   i:C = US, O = DigiCert Inc, OU = www.digicert.com, CN = DigiCert Global Root CA
 2 s:C = US, O = DigiCert Inc, OU = www.digicert.com, CN = DigiCert Global Root CA
   i:C = US, O = DigiCert Inc, OU = www.digicert.com, CN = DigiCert Global Root CA
---
Server certificate
-----BEGIN CERTIFICATE-----
CERTIFICATE REMOVED
-----END CERTIFICATE-----
subject=C = IN, ST = Maharashtra, L = Mumbai, O = National Stock Exchange of India Ltd., OU = IT, CN = www.nseindia.com

issuer=C = US, O = DigiCert Inc, OU = www.digicert.com, CN = GeoTrust RSA CA 2018

---
No client certificate CA names sent
Peer signing digest: SHA256
Peer signature type: RSA-PSS
Server Temp Key: ECDH, P-256, 256 bits
---
SSL handshake has read 6232 bytes and written 444 bytes
Verification: OK
---
New, TLSv1.2, Cipher is ECDHE-RSA-AES128-GCM-SHA256
Server public key is 2048 bit
Secure Renegotiation IS supported
Compression: NONE
Expansion: NONE
No ALPN negotiated
SSL-Session:
    Protocol  : TLSv1.2
    Cipher    : ECDHE-RSA-AES128-GCM-SHA256
    Session-ID: xxxxxxxxxxxxxxxxxxxxxxx
    Session-ID-ctx: 
    Master-Key: xxxxxxxxxxxxxxxxxxxxxxxxxxxxxx
    PSK identity: None
    PSK identity hint: None
    SRP username: None
    TLS session ticket lifetime hint: 7200 (seconds)
    TLS session ticket:
    0000 - 00 00 26 30 a1 f5 2f bf-a1 57 5e 66 57 e6 b6 f6   ..&0../..W^fW...
    ....
    ....
    00a0 - b6 84 52 56 e5 fb f1 4f-03 c5 8e 1a 04 c1 b8 6b   ..RV...O.......k

    Start Time: 1583754185
    Timeout   : 7200 (sec)
    Verify return code: 0 (ok)
    Extended master secret: no
---
GET / HTTP/1.1
Host: www.nseindia.com
accept-encoding: gzip, deflate, br
accept: text/html,application/xhtml+xml,application/xml;q=0.9,image/webp,image/apng,*/*;q=0.8,application/signed-exchange;v=b3;q=0.9
accept-language: en-GB,en-US;q=0.9,en;q=0.8
user-agent: Mozilla/5.0 (Windows NT 10.0; Win64; x64) AppleWebKit/537.36 (KHTML, like Gecko) Chrome/80.0.3987.132 Safari/537.36
cache-control: no-cache
pragma: no-cache
upgrade-insecure-requests: 1

Запросите экспертов, чтобы выяснить, что может послужить причиной отсутствия ответа и что можно сделать для получить ответ.

...