ddd

QQ截图20211118211406.png

HJNQ8CW7ODKFJ}H6P$8SFTM.png

![TTHX7%CWPQMTVV]7`M]VV.png](https://img-blog.csdnimg.cn/img_convert/85ce59a9d003066be579b32e79feddfc.png)

OHV8(B9_86KGH5DTZ${FPP2.png


delphi 使用 idHTTP 获取 UTF-8 编码的中文网页

procedure TForm2.Button1Click(Sender: TObject);
var

  IdHttp1: TIdHTTP;

  Url,s,ResponseStr: string;//请求地址

  ResponseStream : TStringStream; //返回信息

  RequestList : TStringList;    //请求信息

  RequestStream : TStringStream;

begin

  //创建IDHTTP控件

  IdHttp1:= TIdHTTP.Create(nil);

  //TStringStream对象用于保存响应信息

  ResponseStream := TStringStream.Create('',TEncoding.UTF8); // 这里的('',TEncoding.UTF8)  很重要 。如果没有,会造成局部乱码(在线编辑器的‘器’,字体会乱码)。

  RequestStream := TStringStream.Create('');

  RequestList := TStringList.Create;

  idhttp1.HandleRedirects:=true;  //这行去掉后,不能正常运行

//idhttp1.Request.ContentType := 'application/x-www-form-urlencoded'; //没这行,会造成流的方式无法提交成功,列表式提交没有影响

url := 'http://www.ewebeditor.net/ewebeditor/admin/login.asp?action=login';

      //以列表的方式提交参数

    RequestList.Add('h=www.ewebeditor.net');

    RequestList.Add('pwd=AdminTest');

    RequestList.Add('usr=AdminTest');

    IdHttp1.Post(url,RequestList,ResponseStream);

  //    RequestStream.WriteString('h=www.ewebeditor.net&pwd=admin&usr=admin');  //以流的方式提交参数

//    IdHttp1.Post(Url,RequestStream,ResponseStream);

 //     IdHttp1.get('http://www.ewebeditor.net/ewebeditor/admin/default.asp',ResponseStream);

  //   IdHttp1.get('http://www.ewebeditor.net/ewebeditor/admin/main.asp',ResponseStream);
  //
   //   IdHttp1.get('http://www.ewebeditor.net/ewebeditor/admin/menu.asp',ResponseStream);

    //获取网页返回的信息

    ResponseStr := ResponseStream.DataString;

    //网页中的存在中文时,需要进行UTF8解码




      showmessage(ResponseStr);
   //s := UTF8Decode(ResponseStr);
   //   s := AnsiToUtf8(ResponseStr);
   //showmessage(s);

    IdHttp1.Free;

    RequestList.Free;

    RequestStream.Free;

    ResponseStream.Free;

{

      http://www.ewebeditor.net/ewebeditor/admin/login.asp  登录名admin 密码admin

      经过火狐浏览器F12抓包,取得POST的网址,和提交的三个参数,就可以了

    }

end;



delphi 使用 nethttpclient1 获取 UTF-8 编码的中文网页

procedure TForm2.Button2Click(Sender: TObject);
var

  Url,s,ResponseStr: string;//请求地址

  ResponseStream : TStringStream; //返回信息

  RequestList : TStringList;    //请求信息

  RequestStream : TStringStream;

begin

  //TStringStream对象用于保存响应信息

  ResponseStream := TStringStream.Create('',TEncoding.UTF8);  // 这里的('',TEncoding.UTF8)  很重要 。如果没有,会造成局部乱码(在线编辑器的‘器’,字体会乱码)。

  RequestStream  := TStringStream.Create('');

  RequestList := TStringList.Create;

  nethttpclient1.ContentType := 'application/x-www-form-urlencoded'; //没这行,会造成流的方式无法提交成功,列表式提交没有影响

  Url := 'http://www.ewebeditor.net/ewebeditor/admin/login.asp?action=login';

  {  //以列表的方式提交参数

    RequestList.Add('h=www.ewebeditor.net');

  RequestList.Add('pwd=admin');

  RequestList.Add('usr=admin');

    nethttpclient1.Post(url,RequestList,ResponseStream);

  }

  RequestStream.WriteString('h=www.ewebeditor.net&pwd=AdminTest&usr=AdminTest');  //以流的方式提交参数

// RequestStream.Seek(0,tseekorigin.sobeginning);

    RequestStream.position:=0;  //如果使用nethttpclient控件用流的方式提交,那么需要将起始置为0,要启用这一句或上面那一句,列表式提交没影响

      nethttpclient1.Post(Url,RequestStream,ResponseStream);

    //  nethttpclient1.get('http://www.ewebeditor.net/ewebeditor/admin/default.asp',ResponseStream);

    //  nethttpclient1.get('http://www.ewebeditor.net/ewebeditor/admin/main.asp',ResponseStream);

    //  nethttpclient1.get('http://www.ewebeditor.net/ewebeditor/admin/menu.asp',ResponseStream);

    //获取网页返回的信息

    ResponseStr := ResponseStream.DataString;

    //网页中存在中文时,需要进行UTF8解码

  //  s:= UTF8Decode(ResponseStr);

    showmessage(ResponseStr);

    nethttpclient1.Free;

    RequestList.Free;

    RequestStream.Free;

    ResponseStream.Free;

{

      http://www.ewebeditor.net/ewebeditor/admin/login.asp  登录名admin 密码admin

      经过火狐浏览器F12抓包,取得POST的网址,和提交的三个参数,就可以了

    }

end;



5CK$LX}ODPK6RKOQQL335CI.png


python 获取 UTF-8 编码的中文网页

import urllib.request,requests

url="http://www.ewebeditor.net/ewebeditor/admin/login.asp?action=login"  
data= {  
    'h': 'www.ewebeditor.net',  
    'pwd': 'AdminTest',  
    'usr': 'AdminTest',  
    }  

#get方法  
#print requests.get(url, data=data).text  
#post方法, data 可以是字符串等  
dd=requests.post(url, data=data)

dd.encoding
dd.apparent_encoding
ff=dd.text.encode(dd.encoding).decode(dd.apparent_encoding)
print(ff)

![CX]K}KNT45MH04~5NR(1827.png](https://img-blog.csdnimg.cn/img_convert/6cb6d5053d670e1a8fc3049d8b086781.png)

评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值