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 庫的使用