빙 검색 엔진을 사용하여 비디오를 검색하려고했습니다. 하지만 시도 모든 시간은 내가 얻을 오류 HTTPError : HTTPError 403 : 표시되는 오류가Bing을 사용하여 비디오를 검색하는 Python 프로그램
import urllib
import urllib2
import json
def main():
query = "'pyscripter'"
print bing_search(query, 'Video')
def bing_search(query, search_type):
#search_type: Web, Image, News, Video
key= 'LsE7jElMmTDfbrnCEmrCmCEBbaPxMG5BvKr9CsfmSNS'
query = urllib.quote(query)
#create credential for authentication
user_agent = 'Mozilla/4.0 (compatible; MSIE 7.0; Windows NT 5.1; Trident/4.0; FDM; .NET CLR 2.0.50727; InfoPath.2; .NET CLR 1.1.4322)'
credentials = (':%s' % key).encode('base64')[:-1]
auth = 'Basic %s' % credentials
url = 'https://api.datamarket.azure.com/Data.ashx/Bing/Search/'+search_type+'?Query=%27'+query+'%27&$top=5&$format=json'
request = urllib2.Request(url)
request.add_header('Authorization', auth)
request.add_header('User-Agent', user_agent)
request_opener = urllib2.build_opener()
response = request_opener.open(request)
response_data = response.read()
json_result = json.loads(response_data)
result_list = json_result['d']['results']
print result_list
return result_list
if __name__ == '__main__':
main()
금지 :
Traceback (most recent call last):
File "<module1>", line 30, in <module>
File "<module1>", line 7, in main
File "<module1>", line 22, in bing_search
File "C:\Python27\lib\urllib2.py", line 410, in open
response = meth(req, response)
File "C:\Python27\lib\urllib2.py", line 523, in http_response
'http', request, response, code, msg, hdrs)
File "C:\Python27\lib\urllib2.py", line 448, in error
return self._call_chain(*args)
File "C:\Python27\lib\urllib2.py", line 382, in _call_chain
result = func(*args)
File "C:\Python27\lib\urllib2.py", line 531, in http_error_default
raise HTTPError(req.get_full_url(), code, msg, hdrs, fp)
HTTPError: HTTP Error 403: Forbidden
나는 괜찮 았는데 YouTube 검색 API와 협력이 시도하기 전에. 그러나 유일한 문제는 YouTube 데이터베이스에있는 동영상에만 국한되어 있다는 것입니다. 내가 원하는 것은 인터넷에있는 키워드와 관련된 모든 동영상의 URL 목록입니다. 그래서 Bing 검색 엔진으로 시작했습니다. 이것에 관한 도움을 주시면 감사하겠습니다. 웹 서버는 웹 페이지 또는 자원에 대한 클라이언트의 요청에 대한 응답으로 403 금지 HTTP 상태 코드를 반환 할 수 있습니다
내가 문제를 저장했다
"빙 검색"가입 활성화 :'urllib2.HTTPError에게 : HTTP 오류 401 : 제공 한 인증 유형이 지원되지 않습니다. 기본 및 OAuth 만 지원됨' – nofinator
Google 크롬을 사용하고 네트워크 트래픽을 cURL 명령으로 받아서 시험해 보시기 바랍니다. 그런 다음 Python Request를 사용하면 더 쉽게 사용할 수 있습니다. – Lovato
@Lovato 나는 cURL 사용에 대한 지식이 없습니다. 이것은 [이 프로그램]의 파생물이었다. (http://xiaoyao-web-hacks.blogspot.de/2012/09/use-python-to-access-windows-azure-bing.html) –