2016-08-30 4 views
0

남자 나는이 코드를 사용하여 reddit.com 게시물에서 데이터를 가져 오는 중 ...이 1500 게시물 (내가 10000의 데이터를 얻을 필요가)까지 작동합니다. 다음은 없다는 오류를reddit 데이터 수집 중 PHP 루프를 통해 중도에서 중지

array_merge() 제공 : 인수 # 1

이 오류가 내가 쓴 한 줄에서 트리거 배열이 아닌 array_merge

코드

<?php 
$count = 0; 
for($digit=0; $count<2001; $digit+=1){ 

     $jsondata = trim(file_get_contents("http://www.reddit.com/new/.json?count=$count&limit=100")); 

     $json = json_decode($jsondata, true); 

     $postdata[$digit] = $json['data']['children']; 
     $mergedArray = array_merge($mergedArray, $postdata[$digit]); 

     } 

     foreach($mergedArray as $livedata){ 

      $output .= $livedata["data"]["ups"].", "; 
      $output .= '"'.$livedata["data"]["title"].'", '; 
      $output .= $livedata["data"]["id"].", "; 
      $output .= $livedata["data"]["num_comments"].", "; 
      $output .= $livedata["data"]["domain"]."\n\r"; 
      $output .= "<br />"; 

     } 
     echo $output; 
     ?> 

어떤 본문이라도 오류를 찾아 낼 수 있고 내가 10000 개의 게시물을 얻을 수있는 방법을 알 수 있습니다.

+0

누구든지 나를 도와주세요 ?? –

답변

1

발생했을 때 응답 본문을 제공하면 매우 도움이됩니다. 오류 메시지가 표시 될 수 있습니다.

왜 지금 오류가 발생하고 있는지 알 수는 없지만 조만간 실행하게 될 두 가지 문제가 있습니다.

첫 번째 것은 the API rules에 해당하므로 앱으로 인증해야하며 사용자 에이전트를 지정해야합니다. 그렇지 않으면 무겁게 조절됩니다. 합리적으로 당신이 지금 429를 받고 있지만, 그들을 검사하지 않을 가능성이 있습니다.

두 번째로 reddit의 목록 페이지는 1,000 개의 항목 만 포함하므로 직접 10,000 개의 항목을 가져올 수 없습니다. 10k 항목이 실제로 필요한 경우 다음 두 가지 기본 선택 사항이 있습니다.

  1. 일정 기간 동안 한 번에 1000 개씩 데이터를 수집합니다.
  2. 검색 API와 타임 스탬프로 정말 멋지게 꾸밀 수 있습니다. 함께 조각 낼 수있는 많은 데이터 조각을 얻을 수 있습니다.

이 데이터가 필요한 이유 (또는 10,000 샘플이 필요한 이유)를 지정하지 않았지만 일부 분석을 수행하는 데 필요한 reddit 게시물을 찾고있는 경우 다른 사용자가 데이터를 작성했습니다 postscomments의 세트.