Как выбрать несколько значений из блока HTML <td></td>, используя symfony / dom-crawler в laravel - PullRequest
0 голосов
/ 02 июня 2018

Я хочу сканировать данные со страницы, используя symfony dom-crawler, какие данные я хочу, я могу показать их все в массиве, но мне нужно сохранить их в базе данных. это HTML-код страницы

Вот мой код контроллера Вот мой выход .На главной странице внутри вы можете увидеть значения 18, 4 и 35, 3, мне нужны эти значения, чтобы сохранить их в базе данных, так как я могу это сделать ??. `Public function numbers () {$ url =" https://www.lotteryinformation.us/apps/freq-chart.php?state=FL&game=MUPB&tb_state=&tb_links=&tb_country=US&tb_lang=0&adsurl=&tbsite=&d=.";$ client = new Client (); $ crawler = $ client-> request ('GET', $ url);

    $tr_elements = $crawler->filterXPath('//body/center/table/tr/td');
    // iterate over filter results
    foreach ($tr_elements as  $content)
    {
        $tds = array();
        // create crawler instance for result
        $crawler = new Crawler($content);

        foreach ($crawler->filter('tr[valign="middle"]') as  $node) {
            $crawler = new Crawler($node);
            foreach ($crawler->filter('td[class="td0"]') as  $node)
            {
                // extract the value
                 $tds[] = $node->nodeValue;
                //my code
            }
            foreach ($crawler->filter('td[class="td0"]')->eq(2) as  $node)
            {
                // extract the value
                $tds[] = $node->nodeValue;
                //my code
            }

        }
        dd($tds);
        $rows[] = $tds;

    }

   dd($rows);
}`

1 Ответ

0 голосов
/ 03 июня 2018
Well i have solved the problem by doing the code this way ` public function numbers()
{
    $url = "https://www.lotteryinformation.us/apps/freq-chart.php?state=FL&game=MUPB&tb_state=&tb_links=&tb_country=US&tb_lang=0&adsurl=&tbsite=&d=.";

    $client = new Client();


    $crawler = $client->request('GET', $url);

    $tr_elements = $crawler->filterXPath('//body/center/table/tr/td');
    // iterate over filter results
    foreach ($tr_elements as  $content)
    {
        $tds = array();

        // create crawler instance for result
        $crawler = new Crawler($content);
        //iterate again
        /*$links_count =$crawler->filter('tr[valign="middle"]')->count();
        return $links_count;*/
        foreach ($crawler->filter('tr[valign="middle"]') as  $node) {
            $crawler = new Crawler($node);
            foreach ($crawler->filter('td[class="td0"]')->eq(0) as  $node)
            {
                $rank = $crawler->filter('td[class="td0"]')->eq(1)->text();
                $tds[] = $rank;
                $hit = $crawler->filter('td[class="td0"]')->eq(2)->text();
                $tds[] = $hit;

                $frequency_table = new FrequencyTable;
                $frequency_table->rank = $rank;
                $frequency_table->hit= $hit;
                $frequency_table->save();

              /* $tds[] = $node->nodeValue;*/
            }
        }
        dd($tds);
    }

}` and it is what exactly i wanted. Thank you.
Добро пожаловать на сайт PullRequest, где вы можете задавать вопросы и получать ответы от других членов сообщества.
...