<?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);