涉及PHP屏幕抓取的过程

时间:2011-09-17 20:10:41

标签: php asp.net

任何人都可以告诉我使用POST请求PHP屏幕抓取aspx页面的过程吗?我想从网站下载数据并将其保存到数据库。

2 个答案:

答案 0 :(得分:3)

一般步骤,无论任何一方使用的技术如何:

  1. 通过HTTP下载目标页面(通常使用libcurl)
  2. 解析下载的文档
  3. 提取您感兴趣的部分
  4. 将提取的数据存储在数据库中。
  5. 根据所提供的信息,几乎所有人都可以告诉你。

答案 1 :(得分:1)

下载文件:

$file = file_get_contents('http://www.google.com');

如果是xml文件或json,将其分解为数组,然后搜索您想要使用的值

$key = array_search('search term', $array);

这将返回您要查找的数组的键,因此它将是$ array [$ key]。但如果它是一个html页面,您可以轻松使用此功能搜索下载的页面:

function extractStringFromString ($string, $start, $end) {

$startPos = strpos($string,$start);
$stringEndTagPos = strpos($string,$end,$startPos);
$stringBetween = substr($string,$startPos+strlen($start),$stringEndTagPos-$startPos-strlen($start));

if (strlen($stringBetween) != 0) {

    return $stringBetween;
    return true;
}
else {

    return false;
}

}

您可以使用此功能,例如$returnString = extractStringFromString($file, '$start', '$end',$ start是您要查找的内容的开头,并使用$ end结束搜索,这样如果您有<div id="someID">here is some text</div> $start将等于<div id="someID">$end = '</div>'$returnString将等于“这里有一些文字”。

对于DB,您需要连接到DB,然后使用

之类的命令
INSERT INTO table_name (column1, column2, column3,...)
VALUES (value1, value2, value3,...)

如果您有任何其他问题,请告诉我