Я использую python 3.5.4, запросы 2.21.0, urllib3 1.24.1 и сокеты 1.0.0
Когда я запускаю следующий код на моем Mac (OS Mojave), он корректно подключается к веб-сайтуи возвращает html для меня, чтобы я мог его проанализировать и проанализировать, однако, когда я попробовал это на Linux Ware VM, потому что у нашего клиента нет MAC, я получаю ошибку сокета.
quote_page = "http://stats.ncaa.org/teams/312381"
hdr = {
'Temp': 'Mozilla/5.0 (Windows NT 6.1; Win64; x64) AppleWebKit/537.36 (KHTML, like Gecko) Chrome/59.0.3071.115 Safari/537.36'}
session = requests.Session()
req = session.get(quote_page, headers=hdr)
Ошибка: socket.gaierror: [Errno 8] nodename nor servname provided, or not known
Я могу воссоздать ошибку на своем MAC, когда я пытаюсь подключиться через прямые низкоуровневые сокеты.
s = socket.socket(socket.AF_INET, socket.SOCK_STREAM)
server = ("http://stats.ncaa.org/teams/312381", 80)
s.connect(server)
s.sendall("GET / HTTP/1.1\r\n")
print(s.recv(4096))
Я не знаю, что я делаю неправильно, и почему это работаетOS X, но не Ubuntu.