Ошибка HTTP 400 с ошибкой python

53
3

from urllib.request import *
import urllib

def read_text():
text = open("/home/pizzapablo666/Desktop/Test")
contents_of_file = text.read()
print(contents_of_file)
text.close()
check_profanity(contents_of_file)

def check_profanity(text_to_check):
text_to_check = urllib.parse.quote_plus(text_to_check)
connection = urlopen(
"http://www.wdylike.appspot.com/?q=" + text_to_check)
output = connection.read()
print(output)
connection.close()

read_text()

Это обновленная версия
Ошибка HTTP 400 с ошибкой, в чем причина? и как я могу исправить эту ошибку?

спросил(а) 2017-08-11T21:19:00+03:00 2 года, 3 месяца назад
1
Решение
46

Я думаю, это потому, что вы не кодируете свою строку перед добавлением ее в свой url.

Например, в python3 вы должны сделать следующее "text_to_check" перед добавлением его в свой URL:

text_to_check = urllib.parse.quote_plus(text_to_check)

Python2 будет что-то вроде этого (urllib был разбит на более мелкие компоненты в python3):

text_to_check = urllib.quote_plus(text_to_check)

Это означает, что при добавлении строки с пробелом к вашему URL-адресу она будет выглядеть как "Am + я + проклятие% 3F" вместо "Я проклят?".

Полный пример check_profanity():

def check_profanity(text_to_check):
text_to_check = urllib.parse.quote_plus(text_to_check)
connection = urlopen(
"http://www.wdylike.appspot.com/?q=" + text_to_check)
output = connection.read()
print(output)
connection.close()

ответил(а) 2017-08-11T21:51:00+03:00 2 года, 3 месяца назад
Ваш ответ
Введите минимум 50 символов
Чтобы , пожалуйста,
Выберите тему жалобы:

Другая проблема