我一直在寻找能够帮助我找到公司特定信息的脚本或其他解决方案。我想收集每家公司的名称,城市和省(荷兰)。而已。
起初我以为我可以卷曲页面,然后使用“if ... then”。 我找到了一个获取页面的脚本。 现在我想获取特定HTML标记之间的信息。
这可能吗? 有人可以告诉我要看吗?在什么方向?
谢谢!
编辑: 我使用以下代码来获取HTML页面:
function get_data($url) {
$ch = curl_init();
$timeout = 5;
curl_setopt($ch, CURLOPT_URL, $url);
curl_setopt($ch, CURLOPT_RETURNTRANSFER, 1);
curl_setopt($ch, CURLOPT_CONNECTTIMEOUT, $timeout);
$data = curl_exec($ch);
curl_close($ch);
return $data;
}
$returned_content = get_data('http://www.detelefoongids.nl/rijschool/zuid-holland/3-1/?what=rijschool&where=Zuid+Holland&page=2&splitType=regular&sortBy=relevance&collapsing=true&mostDominantHeading=Auto-rijscholen');
echo $returned_content;
该网址包含我想要的信息。正如您所看到的,例如,公司的名称(让我们使用第一个结果:Dubbeldam BV Autorijschool Piet 和位置(城市名称):Barendrecht这两个我想进入数据库。
但是怎么样?
答案 0 :(得分:0)
我的偏好是使用 preg_match()和 preg_match_all()来使用regex从html文档中解析所需的字段。例如:
$html = '<b>Name: </b><div id="xyz">alex</div>';
preg_match('|<b>Name:\s*</b><div id="xyz">(.*?)</div>|', $html, $m);
print "Name: $m[1]";
答案 1 :(得分:0)
我找到了解决方案。请随时编辑/调整脚本:)
我用SIMPLE DOM修复它
$adres = 'http://www.izee.nl';
require_once 'simple_html_dom.php'; //file SIMPLE HTML DOM
$html = file_get_html($adres); //the address I want to "strip"
// code from the Simple HTML DOM
foreach($html->find('div.infoData') as $school) {
$item['schoolnaam'] = $school->find('h4/a[itemprop=name]', 0)->plaintext;
$item['schoolplace'] = $school->find('span.city', 0)->plaintext;
$scholen[] = $item;
$data = array_filter($scholen);
//connection with de database
$con = mysqli_connect("localhost","username","password","db_schools");
if(mysqli_connect_errno()) {
echo 'There is something really bad going on...: ' . mysqli_connect_error();
exit();
}
//put stripped info in the dabatse
$result = mysqli_query($con,"INSERT INTO tbl_scholen (schoolnamen,schoolplaces) VALUES('$item[schoolnaam]', '$item[schoolplace]')");
mysqli_query($con,"UPDATE tbl_scholen set schoolnamen = TRIM(schoolnaam);");
mysqli_query($con,"UPDATE tbl_scholen set schoolplaces = TRIM(schoolplace);");
}
print_r($scholen);