首页 > 编程语言 >【网络编程】获取网站头条

【网络编程】获取网站头条

时间:2024-10-28 10:24:07浏览次数:3  
标签:addr int 编程 char 获取 srv buff include 头条

#include <stdio.h>
#include <string.h>
#include <stdlib.h>
#include <sys/types.h>
#include <sys/socket.h>
#include <arpa/inet.h>
#include <netdb.h>
#include <unistd.h>
#include <iconv.h>


int main()
{
    int sock=socket(AF_INET,SOCK_STREAM,0);

    struct hostent* he=gethostbyname("war.163.com");

    if(he==NULL)
    {
        perror("gethostbyname");
        exit(1);
    }


    const char* srv_ip=inet_ntoa(*(struct in_addr*)(he->h_addr_list[0]));

    //printf("%s\n",srv_ip);

    struct sockaddr_in srv_addr;
    srv_addr.sin_family=AF_INET;
    srv_addr.sin_addr.s_addr=inet_addr(srv_ip);
    srv_addr.sin_port=htons(80);

    if(-1==connect(sock,(struct sockaddr*)&srv_addr,sizeof(srv_addr)))
    {
        perror("connect");
        exit(1);
    }

    char request[]="GET / HTTP/1.1\r\n"
            "Host: war.163.com\r\n"
            "Connection: close\r\n"
            "\r\n";

    send(sock,request,strlen(request),0);


    int buff_len=5*1024*1024;
    char *buff=(char*)malloc(buff_len);

    if(buff==NULL) perror("malloc");

    int ret;
    int cnt=0;

    while(1)
    {
        ret=recv(sock,buff+cnt,buff_len-cnt,0);
        if(ret<1) break;
        cnt+=ret;        
    }

    buff[cnt]='\0';

    //printf("%s\n",buff);

    char *buff2=(char*)malloc(2*cnt);
    memset(buff2,0,2*cnt);

    char* pb1=buff;
    char* pb2=buff2;
    size_t len1=cnt;
    size_t len2=2*cnt;

    iconv_t cd=iconv_open("UTF8","GBK");
    iconv(cd,&pb1,&len1,&pb2,&len2);
    iconv_close(cd);


    //printf("%s\n",buff2);

    char* p1=strstr(buff2,"国际军情");

    if(p1!=NULL)
    {
        int i;

        for(i=0;i<5;i++)
        {
            char* p2=strstr(p1,"html\">")+strlen("html\">");
            char* p3=strstr(p2,"</a>");

            char msg[1000]="";
            strncpy(msg,p2,p3-p2);

            printf("%s\n",msg);

            p1=p3;
        }
    }

    free(buff);
    free(buff2);

    close(sock);    

    return 0;
}



标签:addr,int,编程,char,获取,srv,buff,include,头条
From: https://www.cnblogs.com/HappyTeemo/p/18509815

相关文章

  • 【网络编程】
    #include<stdio.h>#include<string.h>#include<stdlib.h>#include<sys/types.h>#include<sys/socket.h>#include<netinet/in.h>#include<arpa/inet.h>#include<netdb.h>#include<unistd.h>#include......
  • PCL 获取对齐点云之间的差异
    目录一、概述1.1原理1.2实现步骤1.3应用场景二、代码实现2.1关键函数2.1.1提取差异点云的函数2.1.2点云可视化函数2.2完整代码三、实现效果3.1原始点云3.2处理后点云PCL点云算法汇总及实战案例汇总的目录地址链接:PCL点云算法与项目实战案例汇总(长期更新)一、......
  • 初级python代码编程学习----简单的查看当前ip地址的图形化工具
    以下是一个使用Python的tkinter库创建图形化界面来查看当前IP地址的工具代码:代码importtkinterastkimportsocketdefget_ip_address():try:s=socket.socket(socket.AF_INET,socket.SOCK_DGRAM)s.connect(("8.8.8.8",80))ip......
  • 实例代码演示教你如何免费获取股票数据(用python、JavaScript等多种语言获取实时数据、
    ​近一两年来,股票量化分析逐渐受到广泛关注。而作为这一领域的初学者,首先需要面对的挑战就是如何获取全面且准确的股票数据。因为无论是实时交易数据、历史交易记录、财务数据还是基本面信息,这些数据都是我们进行量化分析时不可或缺的宝贵资源。我们的核心任务是从这些数据......
  • 实验2 类和对象_基础编程1
    1.实验任务1t.h1#pragmaonce23#include<string>45//类T:声明6classT{7//对象属性、方法8public:9T(intx=0,inty=0);//普通构造函数10T(constT&t);//复制构造函数11T(T&&t);//移动构造函数12~......
  • java函数式编程
    目录Lambda表达式Lamabda表达式语法语法重要特征代码示例Lambda表达式引用方法Lambda表达式创建线程Lambda表达式中的闭包问题常用的函数式接口Consumer接口的使用Predicate接口的使用Comparator接口的使用Stream流Stream流的生成方式常用方法数据过滤数量限制......
  • 实验2 类和对象_基础编程1
    任务1: t.h#pragmaonce#include<string>classT{public:  T(intx=0,inty=0);   T(constT&t);   T(T&&t);    ~T();      voidadjust(intratio);    voiddisplay()const;     private:  intm1,m2;public:......
  • CUDA编程学习 (3)——内存和数据定位
    1.CUDAMemories1.1GPU性能如何所有thread都会访问globalmemory,以获取输入的矩阵元素在执行一次浮点加法时,需要进行一次内存访问,每次访问传输4字节(即32位浮点数)1FLOP(浮点运算)对应4字节的内存带宽假设的GPU性能:该GPU的峰值浮点计算能力为1,600GFL......
  • CUDA编程学习 (4)——thread执行效率
    1.Warp和SIMD硬件1.1作为调度单位的Warp每个block分为32-threadwarp在CUDA编程模型中,虽然warp不是显式编程的一部分,但在硬件实现上,每个block会被自动划分成若干个包含32个线程的warp。warp作为SM中的调度单元:SM(StreamingMultiprocessor)会以warp......
  • java计算机毕业设计基于web的青少年编程课程评价系统(开题+程序+论文)
    本系统(程序+源码)带文档lw万字以上 文末可获取一份本项目的java源码和数据库参考。系统程序文件列表开题报告内容一、研究背景随着信息技术的迅猛发展,编程教育在青少年教育中的地位日益凸显。如今,编程被视为一项关键技能,对青少年的逻辑思维、创造力和问题解决能力有着积极......