php - 屏幕抓取

标签 php screen screen-scraping

您好,我正在尝试在我的网站上实现一个屏幕抓取方案,到目前为止设置如下。我最终要做的是替换 $results 变量中具有“ResultsDetails.aspx?”的所有链接。到“results-scrape-details/”然后再次输出。谁能指出我正确的方向?

<?php 
$url = "http://mysite:90/Testing/label/stuff/ResultsIndex.aspx";
$raw = file_get_contents($url);
$newlines = array("\t","\n","\r","\x20\x20","\0","\x0B");
$content = str_replace($newlines, "", html_entity_decode($raw));
$start = strpos($content,"<div id='pageBack'");
$end = strpos($content,'</body>',$start) + 6;
$results = substr($content,$start,$end-$start);
$pattern = 'ResultsDetails.aspx?';
$replacement = 'results-scrape-details/';
preg_replace($pattern, $replacement, $results);
echo $results;

最佳答案

使用像 PHP Simple HTML DOM 这样的 DOM 工具.有了它,您可以使用 Jqueryish 语法找到您要查找的所有链接。

// Create DOM object from HTML source
$dom = file_get_html('http://www.domain.com/path/to/page');
// Iterate all matching links
foreach ($dom->find('a[href^=ResultsDetails.aspx') as $node) {
    // Replace href attribute value
    $node->href = 'results-scrape-detail/';
}
// Output modified DOM
echo $dom->outertext;

关于php - 屏幕抓取,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/2846850/

相关文章:

php - Mysql - 执行查询花费太多时间

c# - 如何区分触摸屏和普通触摸屏?

Python 网页抓取 : how to skip url error

java - 屏幕捕捉 Flash

php - 如何在 PHP 5.3 中将 JSON 保存为未转义的 UTF-8?

php - MySQL中如何使用不同表的数据获取相应的记录

javascript - 如果实例化类,PHP 不会向 ajax 返回任何内容

android - Android-并获得权限WRITE_SETTINGS ?!

android - Phonegap 与 native 代码结合用于屏幕抓取应用程序