2017-04-21 5 views
0

ウェブサイトからツールにテキストを渡すプロセスを自動化しようとしています。しかし、私はポストメソッドを介してURLエンコードされたテキストを渡すと、私はエラー400悪い要求を取得します。要求が悪いリクエストエラー400 libya

article = 'The quick brown fox jumps over the lazy dog.' 
headers = ({'Host': 'auto-ilr.ll.mit.edu', 
    'User-Agent': 'Mozilla/5.0 (Windows NT 6.1; WOW64; rv:45.0) Gecko/20100101 Firefox/45.0', 
    'Accept': 'text/html,application/xhtml+xml,application/xml;q=0.9,*/*;q=0.8', 
    'Accept-Language': 'en-US,en;q=0.5', 
    'Accept-Encoding': 'gzip, deflate', 
    'DNT': '1', 
    'Referer': 'https://auto-ilr.ll.mit.edu/instant/', 
    'Connection': 'keep-alive'}) 
s = requests.Session() 
#s.mount('https://', SSLAdapter()) 
s.mount('https://', MyAdapter()) 
try: 
    postdata = urllib.parse.urlencode({'Language': 'English', 'Text': article}) 
    soup = s.post('https://auto-ilr.ll.mit.edu/instant/summary3', data=postdata, headers = headers, verify=False) 

私は違いが何であるかはよく分からないが、要求が経験してきた、最終的なスープの変数は、サイトからのテキストで終わったいくつかの例があったが、それはテキストサイトがした示しました。私は含まれているテキストを正しく処理しません。

私は何か簡単なものが欠けていると感じています。

答えて

1

あなたは簡単な何かが欠けあり、あなたがdataをエンコードする必要はありません、requestsはあなたのためにそれを行います。

article = 'The quick brown fox jumps over the lazy dog.' 
headers = { 
    'User-Agent': 'Mozilla/5.0 (Windows NT 6.1; WOW64; rv:45.0) Gecko/20100101 Firefox/45.0', 
    'Referer': 'https://auto-ilr.ll.mit.edu/instant/' 
} 
postdata = {'Language': 'English', 'Text': article} 
s = requests.Session() 
soup = s.post('https://auto-ilr.ll.mit.edu/instant/summary3', data=postdata, headers = headers, verify=False) 

print(soup.status_code) 

はまた、あなたはただマベ、すべてのヘッダを送信するために持っていけませんUSER-エージェント 'または'リファラー 'と呼ばれることがあります。

関連する問題