При использовании любой библиотеки веб-запросов в python время ожидания ответа на моем корпоративном ПК истекло, но не на моем персональном? - PullRequest
1 голос
/ 11 марта 2019

Я новичок в python, но у меня возникают проблемы с репликацией чего-то, что работает на моем персональном компьютере.

Например, это работает на моем персональном компьютере, но не на моем рабочем:

import urllib.request
contents = urllib.request.urlopen("http://google.com").read()
print(contents)

при выполнении ipconfig на моем рабочем компьютере я вижу:

Connection-Specific Suffix..............url
Link Local IPv6 Address.................Ipv6 code
IPv4 Address............................ip address1
Subnet Mask.............................ip address2
default gateway.........................ip address3

Где слова здесь разные ip и т. Д.

Есть ли что-то, что я должен сделать, чтобы направить мой веб-запрос определенным образом через один из этих ip и т. Д.?

(Дополнительная информация)

В VBA на той же машине xmlhttprequests работают, но запросы winhttp5.1 не выполняются, также команды ping и команды pip также задерживаются в моем окне команд (эта информация может помочь, а может и нет).

1 Ответ

1 голос
/ 12 марта 2019

К сожалению это известная проблема ;urllib, среди прочего, не может согласовывать корпоративные прокси-серверы NTLM.Вы можете обойти это, настроив свой собственный прокси с поддержкой NTLM на своей машине, используя ntlmaps.

Ваша программа на Python может затем общаться через ваш прокси, например:

import urllib2

proxy_url = 'http://localproxy:localport/' 
proxy_url_https = 'https://localproxy:localport/' 
proxy_handler = urllib2.ProxyHandler({'http': proxy_url, 'https': proxy_url_https})
opener = urllib2.build_opener(proxy_handler, urllib2.HTTPHandler)
urllib2.install_opener(opener)

f = urllib2.urlopen('https://httpbin.org/ip')
myfile = f.read()
print myfile
Добро пожаловать на сайт PullRequest, где вы можете задавать вопросы и получать ответы от других членов сообщества.
...