ÉèΪÊ×Ò³ ¼ÓÈëÊÕ²Ø

TOP

Linux CдµÄÖÕ¶ËÌìÆøÔ¤±¨²éѯ(Ò»)
2014-11-24 07:32:34 À´Ô´: ×÷Õß: ¡¾´ó ÖРС¡¿ ä¯ÀÀ:4´Î
Tags£ºLinux ÖÕ¶Ë ÌìÆøÔ¤±¨ ²éѯ

Linux CдµÄÖÕ¶ËÌìÆøÔ¤±¨²éѯ½ØÍ¼¼ûÏ£¬²»¶à˵£¬·ÖÏíһϴúÂ룺


weather.cÎļþ£º
###########################
#include
#include
#include
#include
#include "get_detail_from_html.h"


#define LINE_LEN 1024
#define DAY_TAG_STRING "½ñÌì°×Ìì"
#define NIGHT_TAG_STRING "½ñÌìÒ¹¼ä"
#define PHP_NAME "/tmp/weather.php"
#define HTML_NAME "/tmp/weather.html"


typedef struct _info
{
unsigned char DON;//°×Ì컹ÊÇÒ¹¼ä,0:day,1:night
char t[16];//ʵ¼ÊζÈ
char f[16];//Ìå¸ÐζÈ
char type[16];//ÌìÆøÀàÐÍ
char wing[32];//·çÏò
}info_t;


typedef struct _weather
{
info_t day;
info_t night;
unsigned char gd;
unsigned char gnt;
}weather_t,*weather_p;


//int readfile(const char* filename);
int get_weather_info(const char* filename,weather_p info);


int main(int argc, char **argv)
{
if(argc != 2)
{
printf("Usage: %s \n",argv[0]);
}
char* cityname=argv[1];
char cmd[128];
pid_t pid;
weather_t weather;
memset(&weather,0,sizeof(weather_t));
weather.day.DON=0;
weather.night.DON=1;

printf("Connecting ...\n");
//get the weather file from sina weather web by
//wget -O weather.php http://php.weather.sina.com.cn/search.php city=CITYNAME
//and turn gbk to utf8 by iconv -f gbk -t utf8 xxx.php > xxx.html
sprintf(cmd,"wget -q -O %s http://php.weather.sina.com.cn/search.php city=%s",PHP_NAME,cityname);
system(cmd);
sprintf(cmd,"iconv -f gbk -t utf8 %s > %s",PHP_NAME,HTML_NAME);
system(cmd);

//switch(readfile(filename))
switch(get_weather_info(HTML_NAME,&weather))
{
case 0:
printf("%s's weather is:\n",cityname);
if(weather.gd)
{
printf("day:\t%s\t%s\t%s\n",weather.day.t,weather.day.type,weather.day.wing);
}
if(weather.gnt)
{
printf("night:\t%s\t%s\t%s\n",weather.night.t,weather.night.type,weather.night.wing);
}
break;
default:
printf("error.please try again and make sure the city name be true.\n");
break;
}
return 0;
}


int get_weather_info(const char* filename,weather_p weather)
{
FILE *fp;
char rline[LINE_LEN];
int flag=0;
char* rs;

if((fp = fopen(filename,"r"))==NULL)
{
perror("fopen");
return -1;
}

while(1)
{
rs=fgets(rline,LINE_LEN,fp);
if(flag==2 || rs==NULL || !strlen(rline)) break;
if(strstr(rline,DAY_TAG_STRING))
{
flag=1;
//printf("%s\n",rline);
//get day weather information.
err_info err;
weather->gd=1;
while(!strstr(fgets(rline,LINE_LEN,fp),"

  • "));
    get_detail_from_html(rline,weather->day.t,sizeof(weather->day.t),"span",&err);
    if(err!=ERR_NO)
    {
    weather->gd=0;
    printf("day t error: %s\n",get_err_info(err));
    }

    fgets(rline,LINE_LEN,fp);
    get_detail_from_html(rline,weather->day.type,sizeof(weather->day.type),"li",&err);
    if(err!=ERR_NO)
    {
    weather->gd=0;
    printf("day type error: %s\n",get_err_info(err));
    }

    fgets(rline,LINE_LEN,fp);
    get_detail_from_html(rline,weat
  • Ê×Ò³ ÉÏÒ»Ò³ 1 2 ÏÂÒ»Ò³ βҳ 1/2/2
    ¡¾´ó ÖРС¡¿¡¾´òÓ¡¡¿ ¡¾·±Ìå¡¿¡¾Í¶¸å¡¿¡¾Êղء¿ ¡¾ÍƼö¡¿¡¾¾Ù±¨¡¿¡¾ÆÀÂÛ¡¿ ¡¾¹Ø±Õ¡¿ ¡¾·µ»Ø¶¥²¿¡¿
    ·ÖÏíµ½: 
    ÉÏһƪ£ºC#Á¬½ÓÔ¶³ÌOracleÁ¬½Ó×Ö·û´® ÏÂһƪ£º»ùÓÚLinux C µÄ¼òµ¥ÁÄÌì³ÌÐò

    ÆÀÂÛ

    ÕÊ¡¡¡¡ºÅ: ÃÜÂë: (ÐÂÓû§×¢²á)
    Ñé Ö¤ Âë:
    ±í¡¡¡¡Çé:
    ÄÚ¡¡¡¡ÈÝ:

    ¡¤Linuxϵͳ¼ò½é (2025-12-25 21:55:25)
    ¡¤Linux°²×°MySQL¹ý³Ì (2025-12-25 21:55:22)
    ¡¤Linuxϵͳ°²×°½Ì³Ì£¨ (2025-12-25 21:55:20)
    ¡¤HTTP Åc HTTPS µÄ²î„ (2025-12-25 21:19:45)
    ¡¤ÍøÕ¾°²È«±ØÐ޿ΣºÍ¼ (2025-12-25 21:19:42)