如何从html标记中的页面复制内容并将其放入数据库中

时间:2013-12-21 11:34:51

标签: php html curl

我一直在寻找能够帮助我找到公司特定信息的脚本或其他解决方案。我想收集每家公司的名称,城市和省(荷兰)。而已。

起初我以为我可以卷曲页面,然后使用“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这两个我想进入数据库。

但是怎么样?

2 个答案:

答案 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);