亚洲香蕉成人av网站在线观看_欧美精品成人91久久久久久久_久久久久久久久久久亚洲_热久久视久久精品18亚洲精品_国产精自产拍久久久久久_亚洲色图国产精品_91精品国产网站_中文字幕欧美日韩精品_国产精品久久久久久亚洲调教_国产精品久久一区_性夜试看影院91社区_97在线观看视频国产_68精品久久久久久欧美_欧美精品在线观看_国产精品一区二区久久精品_欧美老女人bb

首頁 > 編程 > C > 正文

c語言獲取直播吧最近一周nba比賽信息

2020-01-26 15:32:41
字體:
來源:轉載
供稿:網友

就是用c語言的寫的一個簡單http請求,并分析其響應,原理很簡單,主要是分析http響應,麻煩的是提取其中的比賽信息

復制代碼 代碼如下:

#include <unistd.h>
#include <stdio.h>
#include <stdlib.h>
#include <string.h>
#include <signal.h>
#include <errno.h>
#include <sys/socket.h>
#include <sys/epoll.h>
#include <fcntl.h>
#include <arpa/inet.h>
#include <netinet/in.h>
#include <sys/stat.h>
#include <sys/types.h>
#include <syslog.h>
#include <pthread.h>
#include <sys/mman.h>
#include <netdb.h>    //struct hostent結構的頭文件
#include <time.h>

#define USERAGENT "Wget/1.10.2"
#define ACCEPT "*/*"
#define ACCEPTLANGUAGE "zh-cn,zh;q=0.5"
#define ACCEPTENCODING "gzip,deflate"
#define ACCEPTCHARSET "gb2312,utf-8;q=0.7,*;q=0.7"
#define KEEPALIVE "300"
#define CONNECTION "keep-alive"
#define CONTENTTYPE "application/x-www-form-urlencoded"

#define HOSTNAME "www.zhibo8.cc"
#define DEBUG 1
char Request[409600]="";
char Recive[409600]="";
struct hostent *host;
int sockfd=0;
FILE *fp;
struct sockaddr_in server_addr;
int year;
int mon;
int day;
int wday;
int count=0;

void HandLine(char *l);
void SaveResult();
void GetDayInfo();
void GetTime();
int GetLocalAgent(char * UserAgent, char * Accept, char * AcceptLanguage, char * AcceptEncoding, char * AcceptCharset, char * KeepAlive, char * Connection, char * ContentType)
{
  memcpy(UserAgent, USERAGENT, strlen(USERAGENT));
  memcpy(Accept, ACCEPT, strlen(ACCEPT));
  memcpy(AcceptLanguage, ACCEPTLANGUAGE, strlen(ACCEPTLANGUAGE));
  memcpy(AcceptEncoding, ACCEPTENCODING, strlen(ACCEPTENCODING));
  memcpy(AcceptCharset, ACCEPTCHARSET, strlen(ACCEPTCHARSET));
  memcpy(KeepAlive, KEEPALIVE, strlen(KEEPALIVE));
  memcpy(Connection, CONNECTION, strlen(CONNECTION));
  memcpy(ContentType, CONTENTTYPE, strlen(CONTENTTYPE));
  return 0;
}


void CreatRequest()
{
    char UserAgent[1024] = "", Accept[1024] = "", AcceptLanguage[1024] = "", AcceptEncoding[1024] = "", AcceptCharset[1024] = "", KeepAlive[1024] = "", Connection[1024] = "", ContentType[1024] = "";
    if((host=gethostbyname("www.zhibo8.cc"))==NULL) /* get ip address by domain */
     {
           if(DEBUG)  fprintf(stderr,"/tGethostname '%s' error, %s/n", HOSTNAME, strerror(errno));
           exit(1);
     }
    GetLocalAgent(UserAgent, Accept, AcceptLanguage, AcceptEncoding, AcceptCharset, KeepAlive, Connection, ContentType); /* Get client browser information */
    sprintf(Request, "GET /%s/%s HTTP/1.0/r/nHost: %s/r/nUser-Agent: %s/r/nAccept: %s/r/nConnection: %s/r/n/r/n", "/", "", HOSTNAME, UserAgent, Accept, Connection);
}

復制代碼 代碼如下:

void ConnectWeb()
{
    if((sockfd=socket(AF_INET,SOCK_STREAM,0))==-1)
    {
       fprintf(stderr,"/t SOCKET ERROR:%s/a/n",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:%s/a/n",strerror(errno));
       exit(1);
    }
}

void SendRequest()
{
    int wn=0;
    wn=write(sockfd,Request,strlen(Request));
    if(wn==-1)
    {
     fprintf(stderr,"/t SEND ERROR:%s/a/n",strerror(errno));
     exit(1);
    }
     fprintf(stdout, "/n/tRequest.  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  **********************/n/n",year,mon,day+count-1,sday>7?sday%7:sday);
    while(read(sockfd,&t,1)) /*處理每天的比賽信息即<ul></ul>里的內容*/
    {

 if(t=='l')
 {
   read(sockfd,&t,1);
          if(t=='i');
          {
             int ln=0;
             memset(Line,0,sizeof(Line));    
      while(read(sockfd,Line+(ln++),1))/*處理每行的信息<li></li>里的內容*/
      {

                char *s=strstr(Line,"</li>");
                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,"<b");
   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,"<a");
   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,"</a>");
   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:%s/n",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;
}

發表評論 共有條評論
用戶名: 密碼:
驗證碼: 匿名發表

圖片精選

亚洲香蕉成人av网站在线观看_欧美精品成人91久久久久久久_久久久久久久久久久亚洲_热久久视久久精品18亚洲精品_国产精自产拍久久久久久_亚洲色图国产精品_91精品国产网站_中文字幕欧美日韩精品_国产精品久久久久久亚洲调教_国产精品久久一区_性夜试看影院91社区_97在线观看视频国产_68精品久久久久久欧美_欧美精品在线观看_国产精品一区二区久久精品_欧美老女人bb
亚洲电影免费在线观看| 日本一本a高清免费不卡| 欧美成人午夜激情| 日韩中文字幕视频在线观看| 国产精品久久久久久久7电影| 欧美亚州一区二区三区| 亚洲精品视频网上网址在线观看| 成人a级免费视频| 日韩欧美国产激情| 一区二区三区 在线观看视| 狠狠躁夜夜躁久久躁别揉| 亚洲一区中文字幕在线观看| 亚洲精品一区久久久久久| 免费成人高清视频| 日韩中文字幕视频| 97av视频在线| 久久99精品国产99久久6尤物| 亚洲国产欧美日韩精品| 亚洲精品免费一区二区三区| 18久久久久久| 高清在线视频日韩欧美| 中文字幕av一区二区| 91精品国产成人| 在线观看视频99| 深夜福利91大全| 亚洲色图日韩av| 久久精品精品电影网| 在线电影欧美日韩一区二区私密| 中文字幕国产精品久久| 欧美寡妇偷汉性猛交| 国产精品久久久久久久久免费| 91伊人影院在线播放| 亚洲综合最新在线| 亚洲综合在线中文字幕| 狠狠爱在线视频一区| 国产一区二区丝袜高跟鞋图片| 久久69精品久久久久久国产越南| 亚洲欧洲在线观看| 欧美性猛交xxxx富婆弯腰| 国产精品盗摄久久久| 一本色道久久88亚洲综合88| 久久久久久久久中文字幕| 久久久久五月天| 日韩中文在线观看| 欧美裸体男粗大视频在线观看| 国产婷婷成人久久av免费高清| 粉嫩av一区二区三区免费野| 69久久夜色精品国产69乱青草| 黑人狂躁日本妞一区二区三区| 色哟哟入口国产精品| 热99精品只有里视频精品| 欧美黄色性视频| 久久精品国产亚洲精品| 欧美日韩国产二区| 久久亚洲电影天堂| 九九视频直播综合网| 亚洲精品国产综合久久| 欧美在线视频一区二区| 成人国产亚洲精品a区天堂华泰| 欧美高清自拍一区| 久久久噜噜噜久久中文字免| 成人国产精品久久久久久亚洲| 26uuu另类亚洲欧美日本一| 2018国产精品视频| 亚洲国产成人爱av在线播放| 国产精品国产亚洲伊人久久| 日韩欧美国产网站| 日韩av在线免费看| 国产91对白在线播放| 欧美另类交人妖| 日韩在线欧美在线国产在线| 成人xvideos免费视频| 中文字幕av一区二区| 一区二区成人av| 日本亚洲欧美成人| 国产精品∨欧美精品v日韩精品| 91九色单男在线观看| 国产成人综合精品| 亚洲国产欧美久久| 91在线观看免费高清| 国产免费亚洲高清| 秋霞av国产精品一区| 国产美女精品免费电影| 久久亚洲私人国产精品va| 亚洲精品综合精品自拍| 欧美视频中文字幕在线| 国产不卡在线观看| 日韩视频在线观看免费| 中文字幕精品影院| 日韩av在线一区| 少妇av一区二区三区| 亚洲激情中文字幕| 国产精品欧美久久久| 国产日本欧美在线观看| 成人精品视频在线| 亚洲一级黄色片| 亚洲精品久久久久久久久久久| 国产91精品久久久| 国产视频福利一区| 国产一区二区三区日韩欧美| 国产精品嫩草影院一区二区| 国产视频久久久久| 国产在线播放91| 欧美在线欧美在线| 国产欧美一区二区三区久久| 亚洲性生活视频在线观看| 亚洲电影成人av99爱色| 久久精品视频一| 在线观看国产成人av片| 亚洲大胆人体视频| 国产视频一区在线| 亚洲综合在线中文字幕| 国产日韩中文字幕| 国产色婷婷国产综合在线理论片a| 日本欧美国产在线| 欧美黑人巨大xxx极品| 国产欧美日韩丝袜精品一区| 久久久久久九九九| 国产亚洲精品美女| 日韩中文有码在线视频| 日韩av片电影专区| 91久热免费在线视频| 中文字幕久久久| 日韩欧美亚洲一二三区| 日本高清+成人网在线观看| 日韩国产欧美区| 在线观看精品国产视频| 亚洲高清免费观看高清完整版| 欧美性jizz18性欧美| 久久99视频精品| 日韩欧美黄色动漫| 日韩有码在线视频| 国产成人精品视频在线| 亚洲人高潮女人毛茸茸| 色妞色视频一区二区三区四区| 91色在线观看| 欧美在线视频在线播放完整版免费观看| 一个人看的www久久| 国产精品亚洲一区二区三区| 亚洲精品美女在线观看播放| 中文字幕成人精品久久不卡| 久久久久久久久久久免费| 久久久久久12| 亚洲人成免费电影| 91爱爱小视频k| 26uuu日韩精品一区二区| 欧美高清videos高潮hd| 久久久精品国产| 亚洲欧美国产精品va在线观看| 欧美激情中文字幕在线| 欧美激情精品久久久久| 欧美二区在线播放| 色偷偷综合社区| 亚州国产精品久久久| 欧美亚洲日本网站| 2019中文字幕在线| 国产一区二区三区中文| 国内外成人免费激情在线视频网站| 爽爽爽爽爽爽爽成人免费观看| 免费成人高清视频| y97精品国产97久久久久久| 亚洲第一精品夜夜躁人人躁| 成人福利网站在线观看11| 国产精品视频自在线|