我需要从网页上的表中刮取数据。然后,我想将这些数据存储在一个数组中,以便稍后将其存储在数据库中。我对这个功能很不熟悉,所以我想尽可能使用最简单的方法。要使用哪一个? file_get_contents,file_get_html或cURL?
应该使用哪一个? file_get_contents
,file_get_html
,cURL
?
我需要从网页上的表中刮取数据。然后,我想将这些数据存储在一个数组中,以便稍后将其存储在数据库中。我对这个功能很不熟悉,所以我想尽可能使用最简单的方法。要使用哪一个? file_get_contents,file_get_html或cURL?
应该使用哪一个? file_get_contents
,file_get_html
,cURL
?
我更喜欢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);
}
你总是可以创建一个多维数组与所有你想要的元素,从数组,当你遍历它拉他们和上传多个项目,每次查询。
这看起来可能会满足我的需求。但是,我究竟如何确定每个元素在其语法中被调用? ''div.cell.name.no_border''从哪里来? –
在浏览器中使用检查器来查看HTML源代码(在Chrome或Firefox中,只需右键单击或按住Ctrl键单击Mac,然后选择“检查元素”)。这将需要一些基本的HTML知识,但我会说,这是我见过的最简单的方法,以刮除网站。 – MillerMedia
curl()
或file_get_contents()
来获取页面的内容。preg_match()
)您可以使用crontab命令(Linux: crontab -e)
使php脚本自动执行。
我的英文很差,所以希望有人给我意见。谢谢!
你不会在你的问题上找到一个绝对的教程,你会发现许多方面,并把它们放在一起 –
有一些API提供了你正在寻找的数据,这比屏幕抓取更容易。 –