<?php
        include_once('simple_html_dom.php');

        $veri = file_get_html("http://apps.istanbulsaglik.gov.tr/Eczane");


        preg_match_all('@<a href="(.*?)" class="ilce-link" data-value="(.*?)"
        data-ilcename="(.*?)" data-title="(.*?)" id="ilce" title="(.*?)"><i
        class="fa fa-dot-circle-o"></i>(.*?)</a>@si',$veri,$baslik);
        $length = count($baslik[4]);

        for ($i = 0; $i < $length; $i++) {
           echo $baslik[4][$i];
           echo "</br>";
        }

        preg_match_all('@<table class="table ilce-nobet-detay" id="ilce-nobet-detay">(.*?)</table>@si',$veri,$adres);

        echo $adres[1][1];
    ?>


在此链接;
http://apps.istanbulsaglik.gov.tr/Eczane我无法获得将在“ Eczaneler”下列出的右侧元素。

因为我需要单击任何左侧元素,所以我可以看到它们。我想做的就是在我的Web搜寻器中获取这些元素。
主要问题是如何使我的搜寻器点击?没有单击,我看不到任何数据。
如果可以单击它,则可以从html源获取数据。如果没有,我的搜寻器将总是返回空。

最佳答案

如果在http://apps.istanbulsaglik.gov.tr/Eczane链接上使用任何浏览器的检查器,您将看到İlçeler列中的每个链接都有一个数据值,并绑定到click事件:

页面Javascript代码:

$(function () {
    $(".ilce-link").on("click", function (parameters) {
        var title = $(this).data("title").toUpperCase();
        var id = $(this).data("value");
        var request = $.ajax({
            url: "/Eczane/nobetci",
            method: "POST",
            data: { "id": id, "token": "aa416735d12fd44b" },
            dataType: "html"
        });
        request.done(function (data) {
            $("#nobet").empty(" ");
            $("#nobet").html('<i class="fa fa-spinner fa-spin"></i>');
            $("#nobet").html(data);
            document.title = "06-11-2017 TARİHİNDEKİ " + title + " İLEÇSİNDEKİ NÖBETÇİ ECZANE LİSTESİ";
        });
    });
});


此代码意味着,当您单击左列中的任何链接时,脚本将通过AJAX创建一个具有以下ID和令牌的URL:http://apps.istanbulsaglik.gov.tr/Eczane/nobetci的发布请求。

因此,其想法是直接使用此url并发布数据,您可以从第一页上的link元素中获取ID和js代码中的令牌,然后使用CURL PHP来发布这些数据。

这是使用CURL发布的示例:

$ch = curl_init();

curl_setopt($ch, CURLOPT_URL,"http://apps.istanbulsaglik.gov.tr/Eczane/nobetci");
curl_setopt($ch, CURLOPT_POST, 1);
// you can use preg_match_all to retrieve the id and the token from the first page
curl_setopt($ch, CURLOPT_POSTFIELDS, "id=$id&token=$token");

$output = curl_exec ($ch);

curl_close ($ch);

09-20 00:27