2014-07-04 143 views
0

我需要从网页上的表中刮取数据。然后,我想将这些数据存储在一个数组中,以便稍后将其存储在数据库中。我对这个功能很不熟悉,所以我想尽可能使用最简单的方法。要使用哪一个? file_get_contents,file_get_html或cURL?

应该使用哪一个? file_get_contentsfile_get_htmlcURL

+0

你不会在你的问题上找到一个绝对的教程,你会发现许多方面,并把它们放在一起 –

+1

有一些API提供了你正在寻找的数据,这比屏幕抓取更容易。 –

回答

0

我更喜欢PHP简单的HTML DOM解析器:

http://simplehtmldom.sourceforge.net/ 

然后,您可以通过与他们的语法某些元素循环。例如,为了让您发送的链接,所有球队的名字,将它保存到一个数组,然后做一个MySQL的INSERT语句中,你会做这样的事情:

$html = file_get_html('http://www.tablesleague.com/england/'); 

$name_array = array(); 

// Get all names 
foreach($html->find('div.cell.name.no_border') as $element){ 
    //Push the name to an array 
    array_push($name_array, $element->innertext); 
} 

然后准备一个MySQL声明:

foreach($name_array as $name){ 
    $sql = "INSERT INTO table_name (name) VALUES ($name)"; 
    $result = $mysqli->query($sql); 
} 

你总是可以创建一个多维数组与所有你想要的元素,从数组,当你遍历它拉他们和上传多个项目,每次查询。

+0

这看起来可能会满足我的需求。但是,我究竟如何确定每个元素在其语法中被调用? ''div.cell.name.no_border''从哪里来? –

+0

在浏览器中使用检查器来查看HTML源代码(在Chrome或Firefox中,只需右键单击或按住Ctrl键单击Mac,然后选择“检查元素”)。这将需要一些基本的HTML知识,但我会说,这是我见过的最简单的方法,以刮除网站。 – MillerMedia

2
  1. 您可以使用curl()file_get_contents()来获取页面的内容。
  2. 然后,使用正则表达式提取您需要的内容(preg_match()
  3. 最后,将内容插入数据库。

您可以使用crontab命令(Linux: crontab -e)使php脚本自动执行。

我的英文很差,所以希望有人给我意见。谢谢!

相关问题