2016-05-17 1 views
1

を使用してpythonでスクレイピング「www.naver.com」 はので、私はこの次のコードを書いたオープンなAPI を使ってこするしようとした:こするに私が欲しいオープンAPI

import urllib.request 
import urllib.parse 
from bs4 import BeautifulSoup 
defaultURL = 'http://openapi.naver.com/search?&' 
key = 'key=keyvalue' 
target='&target=news' 
sort='&sort=sim' 
start='&start=1' 
display='&display=100' 
query='&query='+urllib.parse.quote_plus(str(input("write:"))) 

fullURL=defaultURL+key+target+sort+start+display+query 

print(fullURL) 
file=open("C:\\Users\\kimty\\Desktop\\k\\python\\N\\naver_news.txt","w",encoding='utf-8') 

f=urllib.request.urlopen(fullURL) 
resultXML=f.read() 
xmlsoup=BeautifulSoup(resultXML,'html.parser') 

items=xmlsoup.find._all('item') 

for item in items: 
    file.write('---------------------------------------\n') 
    file.write('title :'+item.tile.get_text(strip=True)+'\n') 
    file.write('contents : '+item.description.get_text(strip=True)+'\n') 
    file.write('\n') 

file.close() 

が、Pythonシェルは、これだけを表示します

============= RESTART: C:\Users\kimty\Desktop\kpython\N\N.py ============= 
write:lee 
http://openapi.naver.com/search?&key=keyvalue&target=news&sort=sim&start=1&display=100&query=lee 
Traceback (most recent call last): 
    File "C:\Users\kimty\Desktop\k\python\N\N.py", line 19, in <module> 
    f=urllib.request.urlopen(fullURL) 
    File "C:\Python34\lib\urllib\request.py", line 161, in urlopen 
    return opener.open(url, data, timeout) 
    File "C:\Python34\lib\urllib\request.py", line 464, in open 
    response = self._open(req, data) 
    File "C:\Python34\lib\urllib\request.py", line 482, in _open 
    '_open', req) 
    File "C:\Python34\lib\urllib\request.py", line 442, in _call_chain 
    result = func(*args) 
    File "C:\Python34\lib\urllib\request.py", line 1211, in http_open 
    return self.do_open(http.client.HTTPConnection, req) 
    File "C:\Python34\lib\urllib\request.py", line 1186, in do_open 
    r = h.getresponse() 
    File "C:\Python34\lib\http\client.py", line 1227, in getresponse 
    response.begin() 
    File "C:\Python34\lib\http\client.py", line 386, in begin 
    version, status, reason = self._read_status() 
    File "C:\Python34\lib\http\client.py", line 356, in _read_status 
    raise BadStatusLine(line) 
http.client.BadStatusLine: '' 

なぜこの出来事? Pythonシェルはどうしたら私に話すことができますか? 私は窓を使用しています。64x、python 3.4.4

答えて

0

このhttp.client.BadStatusLineは、http.client.HTTPExceptionのサブクラスです。それは、あなたのAPIキーが間違っているかもしれない、あなたにHTTPエラーを返しました!ブラウザでリンクにアクセスしようとするとエラーになります。

Thisは、リクエストしようとした正確なアドレスです。

編集

一部の人がhttp libをインポートすることでこのエラーを解決しました。

+0

私は行ごとに試してみました。私は同時にエラーを引き起こすすべてのコマンドを実行すると思います。どうしてか分かりません。行ごとに動作するように動作します。 –

関連する問題