1

私がすでに持っているスクレイピングコードは機能していないので、検索してDOMを使用する必要があることがわかりました。読んだ後でも、DOMに既に持っているものを実装する方法がわかりません。何か壊れないか心配です。ヘルプ/チュートリアルは大歓迎です。

// get input
$link = post('link1');
$category = post('category');
$time = post('time');

// markers
$findme1 = 'https://www.mturk.com/mturk/preview?groupId=';
$findme2 = '<span class="reward">';
$findme3 = '</span>';

// check if link is correct
$rightlink = strpos($link, $findme1);
// if link is correct
  if ($rightlink !== false)
{
    // get html from link
    $html = file($link);

    // iterate through html
    foreach ($html as $i => $line)
    {
        // set title
        if($i == 640) $title = htmlentities($line);

        // set requester
        if($i==669) $requester = htmlentities($line);

        if($i==678)
        {
            // modify the line and save as reward
            $line_modified = str_replace($findme2, '', $line);
            $line_modified = str_replace($findme3, '', $line_modified);
            $reward = htmlentities($line_modified);
        }

        // set qualifications
        if($i==711) $q = htmlentities($line);
    }
4

1 に答える 1

0

PHP Simple HTML DOM Parserを試してみてください。生活が楽になり、ドキュメントを読み、やりたいことが何でもできます。あなたが慣れているならjQuery、それはすでにあなたの手にあります。以下の例を見てください

include('simple_html_dom.php');
$html = file_get_html('https://requester.mturk.com/');
foreach($html->find('a') as $link){
    echo $link . '<br />';
}

このコードは からすべてのデータを取得し、ループhttps://requester.mturk.comを使用してすべてのリンクを出力します。foreachコードは自己記述的だと思います。

于 2013-05-22T02:46:43.573 に答える