Выскабливание в python для использования открытого API
Я хочу очистить "www.naver.com", поэтому я попытался очистить с помощью открытого 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 говорить со мной? Я использую Windows 8.1 64x, Python 3.4.4
1 ответ
Этот http.client.BadStatusLine является подклассом http.client.HTTPException. Это вернуло вам ошибку http, возможно, ваш ключ API неверен! Если я пытаюсь получить доступ к ссылке через мой браузер, это также выдает мне ошибку.
Это именно тот адрес, который вы пытались запросить.
редактировать
Некоторые люди исправили эту ошибку, импортировав http lib.