python - 编写一个小而灵活的 HTTP 客户端

标签 python ruby perl http

我正在寻找人们如何着手编写快速(小型)但灵活的 HTTP 客户端。快速我的意思是代码不多,(我会留给你来决定这意味着什么),最好使用内置语言函数而不是下载或自定义库,这样套接字编程的基本知识应该是足以理解代码的工作原理。我所说的灵活是指您应该能够轻松地操作传入的数据。我自己的版本是这样的

#!/usr/bin/perl
use Socket;
use HTML::Parse;

socket(SOCKH, PF_INET, SOCK_STREAM, getprotobyname('tcp')) || die $!;
connect(SOCKH,sockaddr_in(80,inet_aton('www.example.com'))) || die $!;

$old_fh = select(SOCKH);
$|=1;
select($old_fh);

print SOCKH "GET / HTTP/1.0\n\n";

while (<SOCKH>) {
    $response .= $_;
}

print parse_html($response)->format;

close(<SOCKH>);

这只是一个快速客户端,我将很快针对 HTTP/1.1 对其进行编辑,或者如果您有关于如何改进它以实现合规性的建议,请分享!

编辑:我的代码更新,按照 Sinan Unur 的建议使用 LWP:

#!/usr/bin/perl
use LWP::Simple;
use HTML::Parse;

$data = parse_html( get( 'www.example.com' ) )->format;
foreach $line ( $data ) {
    print $line; // or any other line-based operation
}

最佳答案

Perl 有 LWP .我建议你使用它。

关于python - 编写一个小而灵活的 HTTP 客户端,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/4220601/

相关文章:

ruby-on-rails - 学习 RoR,有人可以从 H**ll 解释这个 boot.rb 吗?

ruby-on-rails - 如何在 Ruby 中推送数组中的元素?

perl - Perl中的数字和字符串串联

ruby - RVM + ruby 1.9.3-p286

perl - NTLM 与 Apache + CentOS 5

windows - Perl system(command) 然后 kill 命令

python - 字典字典的元组列表

python - 在 Python 中间歇性地跳行

python - 为什么repeat(n)不能与Reactive扩展中的create一起使用

python - 覆盖图像时 pylab 子图边界发生变化