에 적용합니다. 간단한 HTML 돔 파서를 배우려고하는데 소개로 ESPN's college football score webpage을 구문 분석하고 일반 HTML 테이블로 변환하려고합니다. 나는 지금까지 날짜를 가져 오는 것 외에는 모든 것을 할 수 있었다. 제가하는 데 문제는 데이터가 다음과 같이 구성되어 있다는 것입니다 :Divs 외부의 요소를 구문 분석하여 Divs (단순 HTML 돔 파서)
<div class=gameDay-Container>
<h4 class="games-date">Thursday, August 28 2014</h4>
<div class=mod-ncf-scorebox> Containing games that I have scraped, which I want to add the date (Aug 28) to </div>
<h4 class="games-date">Friday, August 29 2014</h4>
<div class=mod-ncf-scorebox> containing the next games that I will scrape, which I want the date (Aug 29) appended to </div>
</div>
상단 부분의 배열로 각 날짜 내에서 게임과 장소를 수에 대한 긁힌 자국, 다음 하단 섹션에 대한 데이터를 컴파일 탁자. (? 이것은 내가 시행 착오를 통해 그것을 쓰기로 지저분한이며,이 작업을 수행 할 수있는 쉬운 방법이있다)
foreach($html_base->find('.gameDay-Container') as $dates) {
$rows = $dates->find('.mod-ncf-scorebox');
$count = count($rows);
$supercount=$count.',';
$megacount=explode(', ',$supercount);
print_r($megacount);
}
foreach($html_base->find('.mod-ncf-scorebox') as $event) {
$item['Date'] = '';
$item['Away Team'] = $event->find('.team-name', 0)->plaintext;
$item['Away Team'] = substr($item['Away Team'], 0, -1);
$item['Away Score'] = $event->find('li.finalScore', 1);
$item['Home Team'] = $event->find('.team-name', 1)->plaintext;
$item['Home Team'] = substr($item['Home Team'], 0, -1);
$item['Home Score'] = $event->find('li.finalScore', 2)->plaintext;
$item['Game Status'] = $event->find('div.game-status', 0)->plaintext;
$item['Game ID'] = $event->find('p', 0)->id;
$item['Game ID'] = substr($item['Game ID'], 0, strpos($item['Game ID'], '-'));
$item['Week'] = $week;
$item['League'] = 'NCAA Football';
$NCAAFscores[] = $item;
}
질문 : 나는 게임의 날짜가 내 각 라인에 추가 할 수 있습니다 탁자? 배열 설정을 사용해야하는 경우, 그 값을 가져 와서 일종의 계산을 할 수 있습니까? 내가 간과하고있는 쉬운 방법이 있습니까?
대답 아래
당 Enissay의 제안, 나는 완벽하게 이루신의 foreach 문을 중첩. 여기에 비슷한 것들이있는 코드의 마지막 스 니펫이 있습니다.
foreach($html_base->find('.gameDay-Container') as $event2) {
$date1 = $event2->prev_sibling()->plaintext;
$date2 = new DateTime($date1);
$ymd = ($date2->format('Y-m-d'));
foreach($event2->find('.mod-ncf-scorebox') as $event) {
$item['Date'] = $ymd;
$item['Away Team'] = $event->find('.team-name', 0)->plaintext;
$item['Away Team'] = substr($item['Away Team'], 0, -1);
$item['Away Score'] = $event->find('li.finalScore', 1);
$item['Home Team'] = $event->find('.team-name', 1)->plaintext;
$item['Home Team'] = substr($item['Home Team'], 0, -1);
$item['Home Score'] = $event->find('li.finalScore', 2)->plaintext;
$item['Game Status'] = $event->find('div.game-status', 0)->plaintext;
$item['Game ID'] = $event->find('p', 0)->id;
$item['Game ID'] = substr($item['Game ID'], 0, strpos($item['Game ID'], '-'));
$item['Week'] = $week;
$item['League'] = 'NCAA Football';
$NCAAFscores[] = $item;
}
}
[strtotime()'] (http://codepad.org/2faiwsfV)를 사용하면 strtotime ($ event-> find ('. games-date', 0) -> 평문)'? –