Php从网站抓取数据

Php从网站抓取数据,php,screen-scraping,Php,Screen Scraping,我对编程非常陌生,需要一些帮助来从网站获取数据并将其传递到我的PHP脚本中 该网站是 我想插入一个名称(第一个和最后一个)并检索结果。我知道你可以通过在URL中传递名称来查询站点,但是我在抓取结果时遇到了问题 我正在使用file_get_contents($URL)函数获取页面,但之后需要帮助。具体地说,如果某个名称有多个结果,我只想从某个状态中获取结果 谢谢你的帮助。你需要一个很棒的简单html dom类 使用这个类,您可以用与jQuery类似的方式查询网页的DOM 首先在页面中包含该类,然

我对编程非常陌生,需要一些帮助来从网站获取数据并将其传递到我的PHP脚本中

该网站是

我想插入一个名称(第一个和最后一个)并检索结果。我知道你可以通过在URL中传递名称来查询站点,但是我在抓取结果时遇到了问题

我正在使用file_get_contents($URL)函数获取页面,但之后需要帮助。具体地说,如果某个名称有多个结果,我只想从某个状态中获取结果


谢谢你的帮助。

你需要一个很棒的简单html dom类

使用这个类,您可以用与jQuery类似的方式查询网页的DOM

首先在页面中包含该类,然后使用以下代码段获取页面内容:

$html = file_get_html('http://www.birthdatabase.com/cgi-bin/query.pl?textfield=' . $first . '&textfield2=' . $last . '&age=&affid=');
然后,您可以使用CSS选择来刮取数据(如下所示):


它对我有用。。。参考:我已经尝试过使用preg_match,但我不确定这是否是最好的方法如何使用HTML解析器?谢谢你的帮助。这门课看起来很像我需要的。birthdatabase.com的输出包含多个表,并且没有可刮取的唯一标记。我希望我用的是正确的术语。我是这样一个不速之客,所以任何帮助都将不胜感激。我不是美国人,所以我不知道这个问题的答案,但你能用邮政编码来强制你想要的州吗?州列为输出的一部分。我可能会在数组中搜索适当的值,然后输出相应的生日。我想我的问题仍然是首先要得到那个数组。数据库的输出有多个表,其中包含我不希望在数组中出现的广告和其他无用信息。我该如何解决这个问题?否则,您需要找到一种方法让他们取消数据分页,或者向他们的服务器发出许多请求。获取所有项目——然后根据state列进行循环和过滤。我用更好的CSS DOM路径修改了我的答案
$n = 0;
foreach($html->find('table tbody tr td div font b table tbody') as $element) {
    @$row[$n]['tr']  = $element->find('tr')->text;
    $n++;
}

// output your data
print_r($row);