php抓取网页动态数据(一下如何编写一个简单的PHP数据采集程序(PHP爬虫))
优采云 发布时间: 2021-11-01 12:10php抓取网页动态数据(一下如何编写一个简单的PHP数据采集程序(PHP爬虫))
前言
我们在写Web程序的时候,总会想到让我们的网站更加美观,功能更加强大。有时候写一些小工具或者添加小插件会让我们的网站更加完整。比如万年历功能,比如我们现在要讲的天气预报功能。
当然,我们无法使用专业卫星来接收数据,所以我们的天气数据来自现有的天气预报网站。利用天气预报网站提供的数据服务,我们可以写一个PHP爬虫,然后动态采集我们需要的数据,当目标站点更新数据时,我们的程序也可以同步更新,自动获取数据。
下面介绍如何编写一个简单的PHP数据程序(PHP爬虫)。
原则
给定一个网页的URL,使用PHP下载网页并获取网页内容,然后通过正则表达式提取我们感兴趣的数据,然后输出。
具体在这个例子中,我们要抓取的网页是我们对页面上未来7天的天气感兴趣。
实现0.获取天气预报网页的URL:
$url = "http://www.weather.com.cn/weather/101050101.shtml";
$page_content = file_get_contents($url);
这里,file_get_contents() 函数会下载$url 指向的网页,并以字符串形式返回网页内容。因此,$page_content 变量收录了我们要抓取的网页的所有 HTML 代码。接下来,我们需要从中提取我们需要的数据。
1.使用正则表达式匹配符合条件的字符串
先输出$page_content的值,然后查看网页源码。观察到我们需要的字符串可以在
......
在这两行的注释中找到。
使用正则表达式获取和之间的所有内容:
eregi("(.*)",$page_content,$res);
2.完成页面上图片的路径
由于远程网页中的图片路径都是像/m2/i/icon_weather/29x20/d01.gif这样的相对路径,所以我们需要把这些路径补全,并在它们之前添加。
<p>$forecast = str_replace("