<?php

print_r(getweather(101120501));

/**
* Server 天气情况获取函数
* @param unknown $city
*/
function getweather($city){
$url = "http://www.weather.com.cn/weather1d/".$city.".shtml";
$result = file_get_contents($url);
$result = explode("<li class='dn on' data-dn='todayT'>",$result);
$result = explode("<div class=\"m m2\" id=\"2_3d\">",$result[1]);
$result = mb_convert_encoding($result[0],"GBK","UTF-8");
$first = explode("<div class=\"slid\"></div>",$result);
//print_r($first);exit;
$w1 = get_we_info($first[0]);
$w2 = get_we_info($first[1]);
$week = mb_substr($w1[0],-2);
$arr['w_week'] = $week;
$arr['w_day1'] = trim($w1[1]);
$arr['w_day2'] = trim($w2[1]);
$arr['w_type1'] = trim($w1[2]);
$arr['w_type2'] = trim($w2[2]);
$arr['w_temperature1']= trim($w1[3]);
$arr['w_temperature2']= trim($w2[3]);
return $arr;
}
/**
* 每天的具体天气状况(今天 白天->今天 夜间)
* @param unknown $info
* @return string
*/
function get_we_info($info){
$w_info=explode("</h1>",$info);
$we_arr[0] = strip_tags($w_info[0]);
$w_info=explode("</h2>",$w_info[1]);
$we_arr[1] = strip_tags($w_info[0]);
$w_info = explode("<p class=\"tem\">",$w_info[1]);
$we_arr[2] = strip_tags($w_info[0]);
$w_info=explode("<i>",$w_info[1]);
//$w_info=explode("<p class=\"win\">",$w_info[1]);
$we_arr[3]=strip_tags($w_info[0]);
return $we_arr;
} ?>

php 抓取天气情况 www.weather.com.cn的更多相关文章

  1. C#抓取天气数据

    使用C#写的一个抓取天气数据的小工具,使用正则匹配的方式实现,代码水平有限,供有需要的同学参考.压缩包中的两个sql语句是建表用的. http://files.cnblogs.com/files/yu ...

  2. “最美天气”Python抓取天气

    import urllib.request import urllib.parse import json """     利用"最美天气"抓取即时天 ...

  3. Python抓取天气信息并存储原来这么简单

    我们计划抓取的数据:杭州的天气信息 实现数据抓取的逻辑:使用python 请求 URL,会返回对应的 HTML 信息,我们解析 html,获得自己需要的数据.(很简单的逻辑) 第一步:创建 Pytho ...

  4. 【Python入门只需20分钟】从安装到数据抓取、存储原来这么简单

    基于大众对Python的大肆吹捧和赞赏,作为一名Java从业人员,我本着批判与好奇的心态买了本python方面的书<毫无障碍学Python>.仅仅看了书前面一小部分的我......决定做一 ...

  5. web scraper 抓取分页数据和二级页面内容

    如果是刚接触 web scraper 的,可以看第一篇文章. web scraper 是一款免费的,适用于普通用户(不需要专业 IT 技术的)的爬虫工具,可以方便的通过鼠标和简单配置获取你所想要数据. ...

  6. Powershell抓取网页信息

    一般经常使用invoke-restmethod和invoke-webrequest这两个命令来获取网页信息,如果对象格式是json或者xml会更容易 1.invoke-restmethod 我们可以用 ...

  7. 【应用服务 App Service】App Service中抓取网络日志

    问题描述 众所周知,Azure App Service是一种PaaS服务,也就是说,IaaS层面的所有内容都由平台维护,所以使用App Service的我们根本无法触碰到远行程序的虚拟机(VM), 所 ...

  8. Hibernate之抓取策略

    时间:2017-1-23 19:08 --区分延迟和立即检索1.立即检索    当执行某行代码时,会马上发出SQL语句进行查询.    例如:get()2.延迟检索    当执行某行代码时,不会马上发 ...

  9. Fiddler——抓取https接口配置(web,安卓,ios)

    作为一名合格的测试怎么能不会抓包呢.   抓包适用场景:   测试某个功能时,出现了bug,这时我们便需要抓包看一下这个bug到底是前端的还是服务端的: bug的精准指向,能加速bug得以解决.   ...

随机推荐

  1. 阿尔宾我饿iejr89e 如何

    http://www.huihui.cn/share/8112372 http://www.huihui.cn/share/8112363 http://www.huihui.cn/share/811 ...

  2. 谷歌三大核心技术(一)The Google File System中文版

    谷歌三大核心技术(一)The Google File System中文版  The Google File System中文版 译者:alex 摘要 我们设计并实现了Google GFS文件系统,一个 ...

  3. frame和bounds的区别

    frame:根据父视图坐标系来确定自己的位置 bounds:该视图在自己坐标系的位置和大小 修改bounds并不会引起视图位置的变化,会影响自身子视图的位置:修改frame会引起视图位置的变化 UIV ...

  4. Pick-up sticks(判断两直线相交)

    Pick-up sticks Time Limit: 3000MS   Memory Limit: 65536K Total Submissions: 11335   Accepted: 4250 D ...

  5. (Java随机数举例)随机扔一千次硬币的正反次数

    方法一: public class coin{ public static void main(String args[]){ int n = 0; int m = 0; int len = 1000 ...

  6. QT 入门 -QApplication QPushButton QDialog Ui类型的手工使用

    QT 1.工具 assistant  帮助文档 qtconfig  QT配置工具 qmake     QT的make与项目文件智能创建工具 uic          UI界面的设计文件的编译工具 mo ...

  7. c++,public/protected/private权限修饰符

    1.public的变量可以在类中以及外部访问到: 2. private只可以在类/友元中访问到. #include <iostream> using namespace std; //-- ...

  8. ubuntu卸载vmware

    下面方法摘抄网上方法,经过证实好使 lsmod——显示已载入系统的模块 ps aux : 显示其他用户启动的进程(a)   查看系统中属于自己的进程(x)         启动这个进程的用户和它启动的 ...

  9. [转]网络性能评估工具Iperf详解(可测丢包率)

    原文链接:安全运维之:网络性能评估工具Iperf详解:http://os.51cto.com/art/201410/454889.htm 参考博文:http://linoxide.com/monito ...

  10. javascript时间函数

    //时间函数 var myDate = new Date(); myDate.getYear();        //获取当前年份(2位) myDate.getFullYear();    //获取完 ...