<?xml version="1.0" encoding="utf-8"?>
<!-- generator="FeedCreator 1.7.2-ppt DokuWiki" -->
<?xml-stylesheet href="http://www.pythonclub.org/lib/exe/css.php?s=feed" type="text/css"?>
<rdf:RDF
    xmlns="http://purl.org/rss/1.0/"
    xmlns:rdf="http://www.w3.org/1999/02/22-rdf-syntax-ns#"
    xmlns:slash="http://purl.org/rss/1.0/modules/slash/"
    xmlns:dc="http://purl.org/dc/elements/1.1/">
    <channel rdf:about="http://www.pythonclub.org/feed.php">
        <title>Python 俱乐部 python-network-application</title>
        <description></description>
        <link>http://www.pythonclub.org/</link>
        <image rdf:resource="http://www.pythonclub.org/lib/tpl/dokuwiki/images/favicon.ico" />
       <dc:date>2026-05-06T08:48:33+00:00</dc:date>
        <items>
            <rdf:Seq>
                <rdf:li rdf:resource="http://www.pythonclub.org/python-network-application/cgi?rev=1295574289&amp;do=diff"/>
                <rdf:li rdf:resource="http://www.pythonclub.org/python-network-application/chinese-urlencode?rev=1293779789&amp;do=diff"/>
                <rdf:li rdf:resource="http://www.pythonclub.org/python-network-application/crowbar?rev=1330695992&amp;do=diff"/>
                <rdf:li rdf:resource="http://www.pythonclub.org/python-network-application/email-format?rev=1304404630&amp;do=diff"/>
                <rdf:li rdf:resource="http://www.pythonclub.org/python-network-application/get-ip-address?rev=1311378607&amp;do=diff"/>
                <rdf:li rdf:resource="http://www.pythonclub.org/python-network-application/http-protocol?rev=1281285177&amp;do=diff"/>
                <rdf:li rdf:resource="http://www.pythonclub.org/python-network-application/observer-spider?rev=1297409515&amp;do=diff"/>
                <rdf:li rdf:resource="http://www.pythonclub.org/python-network-application/pop3?rev=1275441529&amp;do=diff"/>
                <rdf:li rdf:resource="http://www.pythonclub.org/python-network-application/pycurl?rev=1275441529&amp;do=diff"/>
                <rdf:li rdf:resource="http://www.pythonclub.org/python-network-application/smtp?rev=1275441529&amp;do=diff"/>
                <rdf:li rdf:resource="http://www.pythonclub.org/python-network-application/start?rev=1361415768&amp;do=diff"/>
                <rdf:li rdf:resource="http://www.pythonclub.org/python-network-application/timeout?rev=1300198462&amp;do=diff"/>
                <rdf:li rdf:resource="http://www.pythonclub.org/python-network-application/urlencode?rev=1294058347&amp;do=diff"/>
                <rdf:li rdf:resource="http://www.pythonclub.org/python-network-application/urllib2-detail?rev=1301899128&amp;do=diff"/>
                <rdf:li rdf:resource="http://www.pythonclub.org/python-network-application/urllib2-post-ajax?rev=1361416290&amp;do=diff"/>
                <rdf:li rdf:resource="http://www.pythonclub.org/python-network-application/urllib2-post?rev=1313210909&amp;do=diff"/>
                <rdf:li rdf:resource="http://www.pythonclub.org/python-network-application/urllib2-proxy?rev=1296366331&amp;do=diff"/>
            </rdf:Seq>
        </items>
    </channel>
    <image rdf:about="http://www.pythonclub.org/lib/tpl/dokuwiki/images/favicon.ico">
        <title>Python 俱乐部</title>
        <link>http://www.pythonclub.org/</link>
        <url>http://www.pythonclub.org/lib/tpl/dokuwiki/images/favicon.ico</url>
    </image>
    <item rdf:about="http://www.pythonclub.org/python-network-application/cgi?rev=1295574289&amp;do=diff">
        <dc:format>text/html</dc:format>
        <dc:date>2011-01-21T01:44:49+00:00</dc:date>
        <title>Python CGI 编程 | 类FieldStorage的使用</title>
        <link>http://www.pythonclub.org/python-network-application/cgi?rev=1295574289&amp;do=diff</link>
        <description>Python CGI 编程 | 类FieldStorage的使用

使用Python自带的cgi库，可以很容易的实现CGI编程。

下面的例子实现了使用 类FieldStorage 得到POST或GET参数的方法

表单示例


&lt;form method=&quot;POST&quot; action=&quot;http://host.com/cgi-bin/test.py&quot;&gt;
    &lt;p&gt;Your first name: &lt;input type=&quot;text&quot; name=&quot;firstname&quot;&gt;
    &lt;p&gt;Your last name: &lt;input type=&quot;text&quot; name=&quot;lastname&quot;&gt;
    &lt;p&gt;Click here to submit form: &lt;input type=&quot;submit&quot; value=&quot;Yeah!&quot;&gt;
    &lt;input type=&quot;hidden&quot; name=&quot;session&quot; value=&quot;1f9a2&quot;&gt;
&lt;/form&gt;…</description>
    </item>
    <item rdf:about="http://www.pythonclub.org/python-network-application/chinese-urlencode?rev=1293779789&amp;do=diff">
        <dc:format>text/html</dc:format>
        <dc:date>2010-12-31T07:16:29+00:00</dc:date>
        <title>中文URL编码</title>
        <link>http://www.pythonclub.org/python-network-application/chinese-urlencode?rev=1293779789&amp;do=diff</link>
        <description>中文URL编码

URL编码是一个比较麻烦的事情，RFC 3986是关于URI的一个标准，在它的第2节定义了字符如何在URI中进行表示，而第3节把一个URI区分为scheme, hier-part, query, fragment几个component。根据这个RFC，A</description>
    </item>
    <item rdf:about="http://www.pythonclub.org/python-network-application/crowbar?rev=1330695992&amp;do=diff">
        <dc:format>text/html</dc:format>
        <dc:date>2012-03-02T13:46:32+00:00</dc:date>
        <title>利用Crowbar抓取网页异步加载的内容</title>
        <link>http://www.pythonclub.org/python-network-application/crowbar?rev=1330695992&amp;do=diff</link>
        <description>利用Crowbar抓取网页异步加载的内容

在做 Web 信息提取、数据挖掘的过程中，一个关键步骤就是网页源代码的获取。但是出于各种原因，很有可能网页上我们感兴趣的内容是在 HTML 文档加载完毕后用客户端 JavaScript 输出或是利用 AJAX 异步读取的，这样一来直接使用 POCO 或者 HttpClient 这样的库来下载文档是得不到这些内容的。当然可以选择自己实现 JS 代码的解析执行，不过借助浏览器的功能来完成这些脚本的执行无疑要简单可行得多了。…</description>
    </item>
    <item rdf:about="http://www.pythonclub.org/python-network-application/email-format?rev=1304404630&amp;do=diff">
        <dc:format>text/html</dc:format>
        <dc:date>2011-05-03T06:37:10+00:00</dc:date>
        <title>Python MIME 电子邮件解码</title>
        <link>http://www.pythonclub.org/python-network-application/email-format?rev=1304404630&amp;do=diff</link>
        <description>Python MIME 电子邮件解码

python自带的email模块是个很有意思的东西，它可以对邮件编码解码，用来处理邮件非常好用。

处理邮件是一个很细致的工作，尤其是解码邮件，因为它的格式变化太多了，下面先看看一个邮件的源文件：</description>
    </item>
    <item rdf:about="http://www.pythonclub.org/python-network-application/get-ip-address?rev=1311378607&amp;do=diff">
        <dc:format>text/html</dc:format>
        <dc:date>2011-07-22T23:50:07+00:00</dc:date>
        <title>使用Python获得本机IP地址</title>
        <link>http://www.pythonclub.org/python-network-application/get-ip-address?rev=1311378607&amp;do=diff</link>
        <description>使用Python获得本机IP地址

使用Python可以用很简单的方法得到本机IP地址，不过在Windows和Linux下的方法稍有不一样的，

Windows下获得IP地址的方法

方法一

使用拨号上网的话，一般都有一个本地ip和一个外网ip，使用python可以很容易的得到这两个ip
使用gethostbyname和gethostbyname_ex两个函数可以实现</description>
    </item>
    <item rdf:about="http://www.pythonclub.org/python-network-application/http-protocol?rev=1281285177&amp;do=diff">
        <dc:format>text/html</dc:format>
        <dc:date>2010-08-08T16:32:57+00:00</dc:date>
        <title>HTTP协议精解</title>
        <link>http://www.pythonclub.org/python-network-application/http-protocol?rev=1281285177&amp;do=diff</link>
        <description>HTTP协议精解

WEB服务器和浏览器之间的一问一答的交互过程也得遵循一定的规则，这个规则就是HTTP协议。它是TCP/IP协议集中的一个应用层协议，用于定义浏览器和WEB服务器之间交换数据过程以及数据本身的格式。现在被广泛使用的HTTP/1.1相对HTTP/1.0而言，最大的特点就是支持持续连接。</description>
    </item>
    <item rdf:about="http://www.pythonclub.org/python-network-application/observer-spider?rev=1297409515&amp;do=diff">
        <dc:format>text/html</dc:format>
        <dc:date>2011-02-11T07:31:55+00:00</dc:date>
        <title>用python爬虫抓站的一些技巧总结 zz</title>
        <link>http://www.pythonclub.org/python-network-application/observer-spider?rev=1297409515&amp;do=diff</link>
        <description>用python爬虫抓站的一些技巧总结 zz

学用python也有3个多月了，用得最多的还是各类爬虫脚本：写过抓代理本机验证的脚本，写过在discuz论坛中自动登录自动发贴的脚本，写过自动收邮件的脚本，写过简单的验证码识别的脚本，本来想写google music的抓取脚本的，结果有了强大的</description>
    </item>
    <item rdf:about="http://www.pythonclub.org/python-network-application/pop3?rev=1275441529&amp;do=diff">
        <dc:format>text/html</dc:format>
        <dc:date>2010-06-02T01:18:49+00:00</dc:date>
        <title>Python POP3 收取邮件</title>
        <link>http://www.pythonclub.org/python-network-application/pop3?rev=1275441529&amp;do=diff</link>
        <description>Python POP3 收取邮件

python 为我们提供了 poplib 模块，利用这个模块，我们可以很方便的收取邮件。


# -*- coding=GBK -*-

import string
import poplib
import StringIO, rfc822

servername = &quot;pop3.126.com&quot;
username = &quot;username here&quot;
passwd = &quot;password here&quot;

#连接 登录 服务器
pop = poplib.POP3(servername)
pop.set_debuglevel(1)            #会打印出debug信息
pop.user(username)
pop.pass_(passwd)

#列出邮件信息
num,total_size = pop.stat()

#取得最新的邮件
hdr,text,octet=pop.retr(num)

#对邮件进行操作
text = string.join(text, &quot;\n&quot;)
file = StringIO.StringIO(text)

messag…</description>
    </item>
    <item rdf:about="http://www.pythonclub.org/python-network-application/pycurl?rev=1275441529&amp;do=diff">
        <dc:format>text/html</dc:format>
        <dc:date>2010-06-02T01:18:49+00:00</dc:date>
        <title>Python PycURL 网络编程</title>
        <link>http://www.pythonclub.org/python-network-application/pycurl?rev=1275441529&amp;do=diff</link>
        <description>Python PycURL 网络编程

在使用urllib的时候经常会死掉，以前debug过，是没有设置 timing out 所以超时后就会死掉。

PycURL是curl的python库，虽然有些curl的功能没有实现，但是还是很强劲的。 


curl是非常强劲的一个工具，</description>
    </item>
    <item rdf:about="http://www.pythonclub.org/python-network-application/smtp?rev=1275441529&amp;do=diff">
        <dc:format>text/html</dc:format>
        <dc:date>2010-06-02T01:18:49+00:00</dc:date>
        <title>Python SMTP 发送带附件电子邮件</title>
        <link>http://www.pythonclub.org/python-network-application/smtp?rev=1275441529&amp;do=diff</link>
        <description>Python SMTP 发送带附件电子邮件

可采用email模块发送电子邮件附件。发送一个未知MIME类型的文件附件其基本思路如下： 


 1. 构造MIMEMultipart对象做为根容器  

 2. 构造MIMEText对象做为邮件显示内容并附加到根容器</description>
    </item>
    <item rdf:about="http://www.pythonclub.org/python-network-application/start?rev=1361415768&amp;do=diff">
        <dc:format>text/html</dc:format>
        <dc:date>2013-02-21T03:02:48+00:00</dc:date>
        <title>Python 网络编程</title>
        <link>http://www.pythonclub.org/python-network-application/start?rev=1361415768&amp;do=diff</link>
        <description>Python 网络编程

协议

	*  HTTP协议精解
	*  Python MIME 电子邮件解码
	*  中文URL编码
	*  python urlencode编码

应用

	*  CGI 编程
	*  Python mimetypes 根据文件名得到mimetypes
	*  使用POP3收邮件
	*  使用SMTP发邮件
	*  使用pycurl进行http，ftp编程
	*  用python爬虫抓站的一些技巧总结 zz
	*  使用Python获得本机IP地址
	*  利用Crowbar抓取网页异步加载的内容

urllib/urllib2应用

	*  Python urllib 超时设置
	*  Python urllib/urlib2 代理使用方法
	*  Python 标准库 urllib2 的使用细节
	*  Python urllib/urllib2 实现POST方法
	*  Google App Engine中的urllib2
	*  Python模拟Ajax/XMLHttpRequest

网站开发

	*  Python Web框架(Web Fram…</description>
    </item>
    <item rdf:about="http://www.pythonclub.org/python-network-application/timeout?rev=1300198462&amp;do=diff">
        <dc:format>text/html</dc:format>
        <dc:date>2011-03-15T14:14:22+00:00</dc:date>
        <title>Python urllib 超时设置</title>
        <link>http://www.pythonclub.org/python-network-application/timeout?rev=1300198462&amp;do=diff</link>
        <description>Python urllib 超时设置

Python的网络抓取操作没有设置默认的timeout的时间，如果遇到网络有问题，没响应的时候，python程序就会hung在那边，所以我们需要对python的网络应用设置超时时间，可以用下面的方法进行socket网络操作的超时时间设置：</description>
    </item>
    <item rdf:about="http://www.pythonclub.org/python-network-application/urlencode?rev=1294058347&amp;do=diff">
        <dc:format>text/html</dc:format>
        <dc:date>2011-01-03T12:39:07+00:00</dc:date>
        <title>python urlencode 编码</title>
        <link>http://www.pythonclub.org/python-network-application/urlencode?rev=1294058347&amp;do=diff</link>
        <description>python urlencode 编码

urlencode 调用方法

urlencode的参数必须是Dictionary


d= {'par1':'a','par2':'b',}
print urllib.urlencode(m)
#par2=b&amp;par1=a


urlencode 编码

函数urlencode不会改变传入参数的原始编码，也就是说需要在调用之前将post或get参数的编码调整好。Python编码转换可以参考</description>
    </item>
    <item rdf:about="http://www.pythonclub.org/python-network-application/urllib2-detail?rev=1301899128&amp;do=diff">
        <dc:format>text/html</dc:format>
        <dc:date>2011-04-04T06:38:48+00:00</dc:date>
        <title>Python 标准库 urllib2 的使用细节</title>
        <link>http://www.pythonclub.org/python-network-application/urllib2-detail?rev=1301899128&amp;do=diff</link>
        <description>Python 标准库 urllib2 的使用细节

Python 标准库中有很多实用的工具类，但是在具体使用时，标准库文档上对使用细节描述的并不清楚，比如 urllib2 这个 HTTP 客户端库。这里总结了一些 urllib2 库的使用细节。</description>
    </item>
    <item rdf:about="http://www.pythonclub.org/python-network-application/urllib2-post-ajax?rev=1361416290&amp;do=diff">
        <dc:format>text/html</dc:format>
        <dc:date>2013-02-21T03:11:30+00:00</dc:date>
        <title>Python模拟Ajax/XMLHttpRequest</title>
        <link>http://www.pythonclub.org/python-network-application/urllib2-post-ajax?rev=1361416290&amp;do=diff</link>
        <description>Python模拟Ajax/XMLHttpRequest

Ajax是目前流行的网页加载模式，可以不刷新网页页面实现数据更新。

但是对我们需要抓取网页内容来说，多了一层障碍，不过无敌的Python很容易抓取Ajax内容。

需要注意的是要添加一个Content-Type的Header，给的值是application/json。否则会发生错误！</description>
    </item>
    <item rdf:about="http://www.pythonclub.org/python-network-application/urllib2-post?rev=1313210909&amp;do=diff">
        <dc:format>text/html</dc:format>
        <dc:date>2011-08-13T04:48:29+00:00</dc:date>
        <title>Python urllib/urllib2 实现POST方法</title>
        <link>http://www.pythonclub.org/python-network-application/urllib2-post?rev=1313210909&amp;do=diff</link>
        <description>Python urllib/urllib2 实现POST方法


def get_taobao_api_data(app_para_dct):
  content = &quot;&quot;
  if app_para_dct:
    para_dct = {}
    para_dct['a'] = 'a'
    para_dct['b'] = 'b'
    url = &quot;&quot;&quot;http://gw.api.taobao.com/router/rest&quot;&quot;&quot;
    para_data = urllib.urlencode(para_dct)
    f = urllib2.urlopen(url, para_data)
    content = f.read()
  return content</description>
    </item>
    <item rdf:about="http://www.pythonclub.org/python-network-application/urllib2-proxy?rev=1296366331&amp;do=diff">
        <dc:format>text/html</dc:format>
        <dc:date>2011-01-30T05:45:31+00:00</dc:date>
        <title>Python urllib/urlib2 代理使用方法</title>
        <link>http://www.pythonclub.org/python-network-application/urllib2-proxy?rev=1296366331&amp;do=diff</link>
        <description>Python urllib/urlib2 代理使用方法

Python的urllib和urllib2模块使得HTTP编程变得非常容易，下面就看看urllib/urlib2使用http代理来访问网络的方法。

urllib2的代理(proxy)使用方法

urllib2使用proxy必需创建一个ProxyHandler对象，然后再用build_opener创建一个OpenerDirector对象，步骤稍微复杂了一些，下面给出urllib2使用HTTP代理的例子：</description>
    </item>
</rdf:RDF>
