我听说有一次可以使用Curl来完成这项工作,但我不想在我的网站上显示来自外部网站的所有内容,但只显示来自特定div的内容。如何才能做到这一点?如何使用PHP在另一个站点上显示内容?
4
A
回答
0
您可以使用curl从您想要的URL中获取html,然后解析结果以“抓取”您想要的div。
9
您可以使用PHP Simple DOM Parser来抓取页面并轻松选择其中的一部分。
一样简单:
$html = file_get_html('http://www.google.com/');
$ret = $html->find('div[id=foo]');
文档here。
如果你想要做的是抓住http://www.freeoh.net/的标题,下面的代码将工作。您需要在与以下脚本相同的文件夹中放置simple_html_dom.php和一个名为page.txt的文件(确保该脚本有权读取和写入该文件)。 (我假设你已经启用卷曲,因为你在你的问题中提到它。)
<?php
include 'simple_html_dom.php';
$curl = curl_init();
curl_setopt ($curl, CURLOPT_URL, "http://www.freeoh.net/");
curl_setopt($curl, CURLOPT_RETURNTRANSFER, 1);
curl_setopt($curl, CURLOPT_USERAGENT, "Mozilla/5.0 (compatible; MSIE 5.01; Windows NT 5.0)");
curl_setopt($curl, CURLOPT_AUTOREFERER, 1);
curl_setopt($curl, CURLOPT_FOLLOWLOCATION, 1);
curl_setopt($curl, CURLOPT_REFERER, "http://www.freeoh.net/");
$result = curl_exec ($curl);
curl_close ($curl);
//write contents of $result to file
$File = "page.txt";
$fh = fopen($File, 'w') or die("can't open file");
fwrite($fh, $result);
fclose($fh);
//turn file into dom object
$page = file_get_html("page.txt");
$header = $page->find("div", 1);
echo $header;
?>
这是一个有点哈克,因为我用卷曲抓住页面,然后需要存储在某个地方,使PHP简单HTML Dom解析器会正确解析它,但它可以工作。
0
相关问题
- 1. 如何使用PHP在另一个站点中显示另一个站点的内容?
- 2. 如何显示一个网站的内容到另一个网站
- 3. 在另一个WordPress站点上显示一个WordPress站点的帖子
- 4. 使用.htaccess在另一个域中显示来自另一个域的内容
- 5. 从另一个站点解析数据并在自己的站点上显示
- 6. Joomla不在网站上显示内容
- 7. 如何在另一个DIV中显示DIV内容
- 8. 如何在另一个组件中显示组件的内容?
- 9. 使用PHP在多个页面上显示内容
- 10. 使用jquery在Rails中显示我的页面上的另一个网站的内容,而不使用iframe
- 11. 如何在点击另一个div后在另一个div上显示div?
- 12. PHP如何从函数()使用返回值显示另一页的内容
- 13. 如何使用ui-router路由到另一个内部站点?
- 14. 在ASP.Net站点上动态创建/显示内容
- 15. 使用innerHTML属性显示另一个html文件的内容?
- 16. 如何使用jQuery在另一个图像上显示图像
- 17. 如何使用AJAX替换另一个内容的DIV内容
- 18. 如何从一个站点发送数据并在另一个站点上接收数据在php中
- 19. 在iframe中显示另一个网站
- 20. 如何在另一个网站的iframe中显示需要POST变量的一个网页的内容?
- 21. 如何安装一个站点内的另一个与Nginx的
- 22. PHP使用isset和SESSION在屏幕上显示内容
- 23. 如何在另一个页面中回显一页内容?
- 24. MVC结构,在这个网站上显示的内容
- 25. android在另一个应用程序上共享内容时显示错误
- 26. jQuery - 从另一个网站拉内容
- 27. 将文件从一个站点上传到另一个站点
- 28. 如何使用RichTextBox显示html内容?
- 29. Silverlight放大一个画布的内容并在另一个画布上显示缩放内容
- 30. 使用PHP CURL从另一个本地主机站点调用localhost站点
这只是打破了网页,例如运行此: find('div [id = header]'); ?> –
James
2010-04-29 01:21:37
编辑我的答案。如果您想从网站抓取标题,则代码正在运行。 – 2010-04-29 03:32:31
+1不使用正则表达式。 – SLaks 2010-04-29 13:29:51