我正在尝试抓取通过iframe从其他域生成的评论。 当我尝试这样做时,我要么得到一条空消息,说这个应用程序没有注册。我明白这是由于跨域问题。我使用Curl在php中编写了以下代码。当我通过父url它加载页面但iframes下的内容丢失了,当我传递子url时,它会返回一条消息,说明应用程序未注册。
代码:
<?php
// 1. initialize
$ch = curl_init();
// 2. The URL containing the iframe
$url = "http://www.ndtv.com/india-news/1993-mumbai-blasts-convict-yakub- memons-final-mercy-plea-rejected-783656?pfrom=home-lateststories";
// 3. set the options, including the url
curl_setopt($ch, CURLOPT_URL, $url);
curl_setopt($ch, CURLOPT_HEADER, 0);
curl_setopt($ch, CURLOPT_RETURNTRANSFER, true);
curl_setopt($ch, CURLOPT_TIMEOUT, 2);
curl_setopt($ch, CURLOPT_MAXREDIRS, 10);
curl_setopt($ch, CURLOPT_FOLLOWLOCATION, true);
// 4. execute and fetch the resulting HTML output by putting into $output
$output = curl_exec($ch);
// 5. free up the curl handle
curl_close($ch);
// 6. Scrape for a single string/word ("Paris")
preg_match("~</?p[^>]*>~", $output, $match);
if($match)
// 7. Display the scraped string
echo $output;
?>
iframe的子网址
我有什么方法可以访问iframe内容。我想要这种数据表单分析,而不是任何非法用法。
感谢您的帮助。
答案 0 :(得分:0)
您需要实际解析HTML ...正则表达式不适用于HTML。
答案 1 :(得分:0)
如果您需要讨论评论,则需要提取评论部分的iframe网址,而不是包含iframe的网页。 cURL只返回网址的源代码,它不会递归跟踪iframe链接并嵌入它们。