2014-07-07 4 views
0

여러 개의 URL을 작성하는 코드를 작성 중입니다. 목록에 다시 저장됩니다. 다음 단계는 각 URL을 열고 데이터 (XML 또는 JSON 형식의 텍스트 만 해당)를 다운로드하고 다운로드 한 데이터를 저장하는 것입니다.목록에서 URL을 열고 데이터를 쓰십시오.

여기 온라인 커뮤니티 덕분에 코드가 올바르게 작동합니다. URL을 열고 데이터를 다운로드하기 위해 지점에 머물렀다. url.request가 내 생성 된 URL로 목록을 반복하고 각 URL을 별도로 호출하고 열고 표시 한 후 다음 URL로 이동합니다. 그러나 URL을 만들 때만 루프를 수행하지만 그 다음엔 아무 것도하지 않습니다. 아무 의견도, 아무것도.

import urllib.request 

.... some calculations for llong and llat .... 


#create the URLs and store in list 
urls = [] 
for lat,long,lat1,long1 in (zip(llat, llong,llat[1:],llong[1:])): 
    for pages in range (1,17): 
     print ("https://api.flickr.com/services/rest/?method=flickr.photos.search&format=json&api_key=5.b&nojsoncallback=1&page={}&per_page=250&bbox={},{},{},{}&accuracy=1&has_geo=1&extras=geo,tags,views,description".format(pages,long,lat,long1,lat1)) 
print (urls) 


#accessing the website 
data = [] 
for amounts in urls: 
    response = urllib.request.urlopen(urls) 
    flickrapi = data.read() 
    data.append(+flickrapi) 
    data.close() 
    print (data) 

내가 뭘 잘못하고 있니?

다음 단계는 데이터를 다운로드하여 추가 처리를 위해 파일 또는 다른 곳에 저장하는 것입니다. 많은 양의 데이터와 같은 많은 데이터를 받게 될 것이므로, R (또는 아마도 파이썬?)으로 그것을 선취하기 위해 저장할 가장 좋은 방법은 무엇이 될지 모르겠다. 통계 작업을해야한다. 어떤 제안?

답변

0

당신은 URL 목록에 생성 된 URL을 추가하지 않는, 당신이 그들을 인쇄 :

print ("https://api.flickr.com/services/rest/?method=flickr.photos.search&format=json&api_key=5.b&nojsoncallback=1&page={}&per_page=250&bbox={},{},{},{}&accuracy=1&has_geo=1&extras=geo,tags,views,description".format(pages,long,lat,long1,lat1)) 

가되어야합니다 계획대로

urls.append("https://api.flickr.com/services/rest/?method=flickr.photos.search&format=json&api_key=5.b&nojsoncallback=1&page={}&per_page=250&bbox={},{},{},{}&accuracy=1&has_geo=1&extras=geo,tags,views,description".format(pages,long,lat,long1,lat1)) 

는 그런 다음 URL을 반복 할 수 있습니다.

하지만 당신은 다음 줄에 오류로 실행하겠습니다 : 여기

response = urllib.request.urlopen(urls) 

당신은 당신이 당신이 URL의 단일 URL을 전달해야 urlopen로 URL의 전체 집합을 먹이 과 같이 amounts 이름 : 응답 파일 "/Users/christoph/Desktop/test.py", 라인 (54), :

response = urllib.request.urlopen(amounts) 
+0

이 일을, 내가 얻을 의견'역 추적 (마지막으로 가장 최근에 전화를) 이잖아 = urllib.request.urlopen (urls) 파일 "/Library/Frameworks/Python.framework/Versions/3.3/lib/python3.3/urllib/request.py", 줄 156, urlopen에서 return opener.open (url, 데이터, 시간 초과) 파일 "/Library/Frameworks/Python.framework/Versions/3.3/lib/python3.3/urllib/request.py", 줄 460, 열기 req.timeout = timeout AttributeError : 'list' 개체에 'timeout'속성이 없습니다. – Stophface

+0

내 대답이 업데이트되었습니다. – Noelkd

+0

아, 멋지다! 다음 단계는 데이터를 다운로드하는 것입니다. 감사! – Stophface

관련 문제