1. 支持 http/https
2. 支持HTTP 1.1的 Keep-Alive特性,能够在同一个socket连接里使用并发的httprequest
3. 支持授权
4. 支持Cache
5. 提供所有HTTP支持的方法,不只是GET和POST,还包括DELETE,CONNECT吧
6. 自动通过”GET“方法,重定向3XX返回值
7. 支持deflate和gzip两种资源压缩格式
### 使用httplib2 浏览网页
~~~
#!/usr/bin/env python
#coding=utf-8
import urllib
import httplib2
http = httplib2.Http()
url="http://uliweb.clkg.org/login"
response,content=http.request(url,'GET')
print content
~~~
### 提交数据
~~~
#!/usr/bin/env python
#coding=utf-8
import urllib
import httplib2
http = httplib2.Http()
url="http://uliweb.xxx.xxx.com/new_topic"
body={'title':'test'}
headers= {'Content-type':'application/x-www-form-urlencoded'}
response,content=http.request(url,'POST',headers=headers,body=urllib.urlencode(body))
print content
~~~
要求:网址是带有能提交内容的网址, body是网址的源代码带有 input或者textarea等表单。 例如:
### 一般登录方式
我们可以利用POST的特性来模拟登录到网站。
~~~
#!/usr/bin/env python
#coding=utf-8
import urllib
import httplib2
http = httplib2.Http()
url="http://uliweb.clkg.org/login"
body={'username':'python','password':'python','rememberme':"True"}
headers={'Content-type':'application/x-www-form-urlencoded',
"Connection": "Keep-Alive",
"cache-control":"no-cache",
}
response,content = http.request(url,'POST',headers=headers,body=urllib.urlencode(body))
headers['Cookie']= response['set-cookie']
url='http://uliweb.clkg.org/forum'
response,content=http.request(url,'GET',headers=headers)
~~~
1. 获取注册页面地址;
2. 将注册提交的内容写到body里面,作为'POST'的参数; 这种方式适合在非防范登录方式可以使用。
uliweb添加了 CSRF(非法入侵,交叉站点访问)。 因此我们需要以下代码来访问uliweb的登录:
~~~
#!/usr/bin/env python
#coding=utf-8
import urllib
import httplib2
http = httplib2.Http()
url="http://uliweb.clkg.org/login"
body={'username':'python','password':'python','rememberme':"True"}
headers={'Content-type':'application/x-www-form-urlencoded',
"Connection": "Keep-Alive",
"cache-control":"no-cache",
}
response,content = http.request(url,'GET')
csrf_val = content.split('csrf_token" value="')[1].split('">')[0]
body['csrf_token'] = csrf_val
headers['Cookie']= response['set-cookie']
response,content = http.request(url,'POST',headers=headers,body=urllib.urlencode(body))
url='http://uliweb.clkg.org/forum'
response,content=http.request(url,'GET',headers=headers)
print content
~~~
1. 我们先下载login页面
2. 获取csrf token代码
3. 在POST的时候将csrf_token代码发送给服务器
- Python爬虫入门
- (1):综述
- (2):爬虫基础了解
- (3):Urllib库的基本使用
- (4):Urllib库的高级用法
- (5):URLError异常处理
- (6):Cookie的使用
- (7):正则表达式
- (8):Beautiful Soup的用法
- Python爬虫进阶
- Python爬虫进阶一之爬虫框架概述
- Python爬虫进阶二之PySpider框架安装配置
- Python爬虫进阶三之Scrapy框架安装配置
- Python爬虫进阶四之PySpider的用法
- Python爬虫实战
- Python爬虫实战(1):爬取糗事百科段子
- Python爬虫实战(2):百度贴吧帖子
- Python爬虫实战(3):计算大学本学期绩点
- Python爬虫实战(4):模拟登录淘宝并获取所有订单
- Python爬虫实战(5):抓取淘宝MM照片
- Python爬虫实战(6):抓取爱问知识人问题并保存至数据库
- Python爬虫利器
- Python爬虫文章
- Python爬虫(一)--豆瓣电影抓站小结(成功抓取Top100电影)
- Python爬虫(二)--Coursera抓站小结
- Python爬虫(三)-Socket网络编程
- Python爬虫(四)--多线程
- Python爬虫(五)--多线程续(Queue)
- Python爬虫(六)--Scrapy框架学习
- Python爬虫(七)--Scrapy模拟登录
- Python笔记
- python 知乎爬虫
- Python 爬虫之——模拟登陆
- python的urllib2 模块解析
- 蜘蛛项目要用的数据库操作
- gzip 压缩格式的网站处理方法
- 通过浏览器的调试得出 headers转换成字典
- Python登录到weibo.com
- weibo v1.4.5 支持 RSA协议(模拟微博登录)
- 搭建Scrapy爬虫的开发环境
- 知乎精华回答的非专业大数据统计
- 基于PySpider的weibo.cn爬虫
- Python-实现批量抓取妹子图片
- Python库
- python数据库-mysql
- 图片处理库PIL
- Mac OS X安装 Scrapy、PIL、BeautifulSoup
- 正则表达式 re模块
- 邮件正则
- 正则匹配,但过滤某些字符串
- dict使用方法和快捷查找
- httplib2 库的使用