首页IT科技Python李白喝酒有几斗([Python学习]PycURL简单学习 limodou的学习记录 limodou是一个程序员,他关心的焦点是Python, DocBook, Open Source …)

Python李白喝酒有几斗([Python学习]PycURL简单学习 limodou的学习记录 limodou是一个程序员,他关心的焦点是Python, DocBook, Open Source …)

时间2025-08-03 02:02:34分类IT科技浏览6742
导读:PycURL 是一个C语言写的 libcurl 的 Python 绑定库。libcurl 是一个自由的,并且容易使用的用在客户端的 URL 传输库。它的功能很强大,在 PycURL 的主页上介绍的支持的功能有:...

PycURL 是一个C语言写的 libcurl 的 Python 绑定库              。libcurl 是一个自由的              ,并且容易使用的用在客户端的 URL 传输库                      。它的功能很强大                     ,在 PycURL 的主页上介绍的支持的功能有:

supporting FTP, FTPS, HTTP, HTTPS, GOPHER, TELNET, DICT, FILE and LDAP. libcurl supports HTTPS certificates, HTTP POST, HTTP PUT, FTP uploading, kerberos, HTTP form based upload, proxies, cookies, user+password authentication, file transfer resume, http proxy tunneling and more!

那一大堆的协议已经让人惊喜了        ,特别是还有代理服务器和用户认证之类的功能       。这个库相对于 urllib2 来说       ,它不是纯 Python 的                     ,它是一个 C 库               ,但因此速度更快       ,但它不是很 pythonic                      ,学起来有些复杂              。它在多种平台下都有移植               ,象 Linux , Mac, Windows, 和多种Unix                      。

我安装了一个,并且测试了一小段代码                     ,是有些复杂                      ,代码如下:

import pycurl

c = pycurl.Curl()

c.setopt(pycurl.URL, ‘http://feeds.feedburner.com/solidot’)

import StringIO

b = StringIO.StringIO()

c.setopt(pycurl.WRITEFUNCTION, b.write)

c.setopt(pycurl.FOLLOWLOCATION, 1)

c.setopt(pycurl.MAXREDIRS, 5)

# c.setopt(pycurl.PROXY, ‘http://11.11.11.11:8080′)

# c.setopt(pycurl.PROXYUSERPWD, ‘aaa:aaa’)

c.perform()

print b.getvalue()

上述代码将会把奇客(Solidot)的RSS抓下来       。如果有代理服务器,那么修改一下注释的两行即可       。在 PycURL 的主页上还有一个多线程抓取的例子              ,有兴趣的可以看一看                      。

supporting FTP, FTPS, HTTP, HTTPS, GOPHER, TELNET, DICT, FILE and LDAP. libcurl supports HTTPS certificates, HTTP POST, HTTP PUT, FTP uploading, kerberos, HTTP form based upload, proxies, cookies, user+password authentication, file transfer resume, http proxy tunneling and more!

import pycurl

c = pycurl.Curl()

c.setopt(pycurl.URL, ‘http://feeds.feedburner.com/solidot’)

import StringIO

b = StringIO.StringIO()

c.setopt(pycurl.WRITEFUNCTION, b.write)

c.setopt(pycurl.FOLLOWLOCATION, 1)

c.setopt(pycurl.MAXREDIRS, 5)

# c.setopt(pycurl.PROXY, ‘http://11.11.11.11:8080′)

# c.setopt(pycurl.PROXYUSERPWD, ‘aaa:aaa’)

c.perform()

print b.getvalue()
声明:本站所有文章                      ,如无特殊说明或标注        ,均为本站原创发布              。任何个人或组织              ,在未征得本站同意时                     ,禁止复制              、盗用                      、采集       、发布本站内容到任何网站              、书籍等各类媒体平台       。如若本站内容侵犯了原著者的合法权益        ,可联系我们进行处理                      。

创心域SEO版权声明:以上内容作者已申请原创保护,未经允许不得转载,侵权必究!授权事宜、对本内容有异议或投诉,敬请联系网站管理员,我们将尽快回复您,谢谢合作!

展开全文READ MORE
热镀锌(redux crateStore connect) 香港云主机试用(linux香港云主机租用有哪些优点)