栏目分类:
子分类:
返回
名师互学网用户登录
快速导航关闭
当前搜索
当前分类
子分类
实用工具
热门搜索
名师互学网 > IT > 软件开发 > 后端开发 > C/C++/C#

c语言获取直播吧最近一周nba比赛信息

C/C++/C# 更新时间: 发布时间: IT归档 最新发布 模块sitemap 名妆网 法律咨询 聚返吧 英语巴士网 伯小乐 网商动力

c语言获取直播吧最近一周nba比赛信息

就是用c语言的写的一个简单http请求,并分析其响应,原理很简单,主要是分析http响应,麻烦的是提取其中的比赛信息

复制代码 代码如下:
#include
#include
#include
#include
#include
#include
#include
#include
#include
#include
#include
#include
#include
#include
#include
#include
#include     //struct hostent结构的头文件
#include

#define USERAGENT "Wget/1.10.2"
#define ACCEPT "*
     {
           if(DEBUG)  fprintf(stderr,"tGethostname '%s' error, %sn", HOSTNAME, strerror(errno));
           exit(1);
     }
    GetLocalAgent(UserAgent, Accept, AcceptLanguage, AcceptEncoding, AcceptCharset, KeepAlive, Connection, ContentType);
    sprintf(Request, "GET /%s/%s HTTP/1.0rnHost: %srnUser-Agent: %srnAccept: %srnConnection: %srnrn", "/", "", HOSTNAME, UserAgent, Accept, Connection);
}

复制代码 代码如下:
void ConnectWeb()
{
    if((sockfd=socket(AF_INET,SOCK_STREAM,0))==-1)
    {
       fprintf(stderr,"t SOCKET ERROR:%san",strerror(errno));
       exit(1);
    }
    memset(&server_addr,0,sizeof(server_addr));
    server_addr.sin_family = AF_INET;
    server_addr.sin_port   = htons(80);   
    server_addr.sin_addr = *((struct in_addr *)host->h_addr);
    if(connect(sockfd,(struct sockaddr*)(&server_addr),sizeof(struct sockaddr))==-1)
    {
       fprintf(stderr,"t ConNECT ERROR:%san",strerror(errno));
       exit(1);
    }
}

void SendRequest()
{
    int wn=0;
    wn=write(sockfd,Request,strlen(Request));
    if(wn==-1)
    {
     fprintf(stderr,"t SEND ERROR:%san",strerror(errno));
     exit(1);
    }
     fprintf(stdout, "ntRequest.  send OK!n" );
}
void SaveResult()
{
    fd_set readfds;
   struct timeval tival;

  
   int i,j,ret;
   i=j=ret=0;
  int n=0;
   RECIVE:
   FD_ZERO(&readfds);
   tival.tv_sec=10;
   tival.tv_usec=0;
   if(sockfd>0)
     FD_SET(sockfd,&readfds);
   ret=select(sockfd+1,&readfds,NULL,NULL,&tival);
   if(ret==0)
   {
     if(n++<2)
      goto RECIVE;

   }
   if(FD_ISSET(sockfd,&readfds))
   {
    
     while(read(sockfd,Recive,sizeof(Recive)))
     {       
        fwrite(Recive,sizeof(Recive),1,fp);
        memset(Recive,0,sizeof(Recive));
     }

}
}

复制代码 代码如下:
void EchoResult()
{
   fd_set readfds;
   struct timeval tival;

  
   int i,j,ret;
   i=j=ret=0;
  int n=0;
   RECIVE:
   FD_ZERO(&readfds);
   tival.tv_sec=2;
   tival.tv_usec=0;
   if(sockfd>0)
     FD_SET(sockfd,&readfds);
   ret=select(sockfd+1,&readfds,NULL,NULL,&tival);
   if(ret==0)
   {
     if(n++<2)     
      goto RECIVE;

   }
   if(FD_ISSET(sockfd,&readfds))
   {     
      char c; 
      while(read(sockfd,&c,1))
     {       
         if(c=='d')
         {
            read(sockfd,&c,1);
            if(c=='i')
     {              
  read(sockfd,&c,1);
         if(c=='v')
  {
     read(sockfd,&c,1);
            if(c==' ')
     {
        read(sockfd,&c,1);
               if(c=='c')
        {      
          read(sockfd,&c,1);
          if(c=='l')
          {
     read(sockfd,&c,1);
     if(c=='a')
     {
               read(sockfd,&c,1);
                      if(c=='s')
               {
    read(sockfd,&c,1);
           if(c=='s')
    {
              read(sockfd,&c,1);
                     if(c=='=')
              {
         read(sockfd,&c,1);
                if(c=='"')
         {
                                        read(sockfd,&c,1);
            if(c=='t')
     {
               read(sockfd,&c,1);
                      if(c=='i')
        {
           read(sockfd,&c,1);
                  if(c=='t')
           {                                                 
         read(sockfd,&c,1);
         if(c=='l')
         {
           read(sockfd,&c,1);
                  if(c=='e')
           {
        read(sockfd,&c,1);
               if(c=='b')
        {
                  read(sockfd,&c,1);
           if(c=='a')
           { 
                                                                read(sockfd,&c,1);  
        if(c=='r');
        {
           read(sockfd,&c,1);
                  if(c=='"')
                                                                     GetDayInfo();
               } 
           }
        } 
           }     
         }  
           }      
        }
     }
         }     
       }    
    } 
        }      
     }  
          }
        }     
     }   
  }  
            }
         }

     }
   }

}

复制代码 代码如下:
void GetDayInfo()
{
  //  int f=open("./s.txt",O_WRonLY|O_CREAT);   
    char t;
    char Line[1024]="";
    int sday=wday+count;
    if(count++>=7)
    return;
    printf("n***********%d年 %d月 %d日, 星期 %d  **********************nn",year,mon,day+count-1,sday>7?sday%7:sday);
    while(read(sockfd,&t,1))
    {

 if(t=='l')
 {
   read(sockfd,&t,1);
          if(t=='i');
          {
             int ln=0;
             memset(Line,0,sizeof(Line));    
      while(read(sockfd,Line+(ln++),1))
      {

                char *s=strstr(Line,"");
                if(s!=NULL)
                  break;
      }
      Line[ln]=0;                      
             HandLine(Line);
   }  
 }
       else if(t=='/')
 {
          read(sockfd,&t,1);
   if(t=='u')
   {
      read(sockfd,&t,1);
             if(t=='l');
              return;     
   }
        }
    }
}
void HandLine(char *l)
{
   l++;  
   char *NBA="NBA常规赛";
   char *p=strstr(l,NBA);
   if(p==NULL)
 return;
   char *t=strstr(l,"   int lt=strlen(l)-strlen(t);
   char *time=(char*)malloc(sizeof(char)*lt);
   memcpy(time,l,lt);
   char *p1=strstr(p,"/b>");
   char *p2=strstr(p,"   int n=strlen(p1)-strlen(p2)-3;
   char *TeamVsTeam=(char*)malloc(n*sizeof(char));
   memcpy(TeamVsTeam,p1+3,n);
   char *p3=strstr(p2,"_blank">");
   char *p4=strstr(p3,"");
   int m=strlen(p3)-strlen(p4)-8;
   char *Live=(char*)malloc(sizeof(char)*m);
   memcpy(Live,p3+8,m);
   printf("time:%s The Teams:%s TV Live:%sn",time,TeamVsTeam,Live);
}
void GetTime()
{
    time_t rawtime;
    struct tm *timeinfo;
    time(&rawtime);
    timeinfo=localtime(&rawtime);
    year=timeinfo->tm_year+1900;
    mon =timeinfo->tm_mon+1;
    day =timeinfo->tm_mday;
    wday=timeinfo->tm_wday;
   if(wday==0)
     wday=7;
}

int main()
{
    fp=fopen("Info.txt","w");
    if(fp==NULL)
    {
      fprintf(stderr,"creat file is error n");
      exit(1);
    }
    CreatRequest();
    ConnectWeb();
    SendRequest();   
    EchoResult();
    printf("IS END !!n");
    return 0;
}

转载请注明:文章转载自 www.mshxw.com
本文地址:https://www.mshxw.com/it/65783.html
我们一直用心在做
关于我们 文章归档 网站地图 联系我们

版权所有 (c)2021-2022 MSHXW.COM

ICP备案号:晋ICP备2021003244-6号