Запросы документов Python - PullRequest
       9

Запросы документов Python

0 голосов
/ 18 октября 2018

Я запросил документ с веб-страницы, используя сокет, и он возвращает ошибку 400 Плохих запросов.Что я могу сделать?Вот код:

import socket
s=socket.socket(socket.AF_INET,socket.SOCK_STREAM)

s.connect(('www.py4e.org',80))

cmd='GET https://www.py4e.org/lectures3/Pythonlearn-11-Regex-Handout.txt         HTTP/1.1\r\n\r\n'.encode()

#headers={'User-Agent': 'Mozilla/5.0 (Windows NT 6.3; WOW64; rv:63.0)    Gecko/20100101 Firefox/63.0'}

s.send(cmd)
while True:
    data=s.recv(512)
    if len(data)<1: break

print(data.decode(),end='')

s.close()

Это вывод, который я получил:

HTTP/1.1 400 Bad Request
Date: Wed, 17 Oct 2018 20:50:29 GMT
Server: Apache
Content-Length: 226
Connection: close
Content-Type: text/html; charset=iso-8859-1

<!DOCTYPE HTML PUBLIC "-//IETF//DTD HTML 2.0//EN">
<html><head>
<title>400 Bad Request</title>
</head><body>
<h1>Bad Request</h1>
<p>Your browser sent a request that this server could not understand.<br    />
</p>
</body></html>

1 Ответ

0 голосов
/ 19 октября 2018

Если вы просто хотите получить какой-либо файл с веб-сервера, я рекомендую использовать запросы .Просто установите модуль с помощью pip install requests и используйте его следующим образом

import requests

url = 'https://www.py4e.org/lectures3/Pythonlearn-11-Regex-Handout.txt'
response = request.get(url)
print(response.content)

К сожалению, SSL-сертификат с указанным именем хоста недействителен.Вот почему мы не можем получить документ или отключить проверку SSL, которую я не рекомендую: response = request.get(url, verify=False)

Добро пожаловать на сайт PullRequest, где вы можете задавать вопросы и получать ответы от других членов сообщества.
...