Я получаю socket.gaierror: [Errno 8] указано ни имя, ни имя сервера, либо неизвестно, когда я запускаю его в Linux, но не в MAC OS x - PullRequest
0 голосов
/ 28 февраля 2019

Я использую 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.

1 Ответ

0 голосов
/ 10 марта 2019

Решено: Проблема в том, что я получал URL с веб-страницы, и формат веб-страницы менялся в зависимости от того, какую операционную систему я использовал.Это означает, что я получил неверный URL с веб-страницы.

...