我們經常會用python來進行抓包,模擬登陸等等, 勢必要構造http請求包。
http的request通常有4個方法get,post,put,delete,分別對應于查詢,更新,添加,刪除。我們經常用到的也就get,post。
1.用python構造get
#build request for accessed url
??? homeReq = urllib.request.Request(
???????? url = csdnAccessModuleUrl
???????? )
??? homeReq.add_header('Accept', 'text/html, application/xhtml+xml, */*');
??? homeReq.add_header('Accept-Language', 'en-US')
??? homeReq.add_header('Accept-Encoding', 'gzip, deflate')
??? homeReq.add_header('Connection', 'Keep-Alive');
??? homeReq.add_header('Referer', 'http://passport.csdn.net/account/login?from='+urllib.parse.quote(moduleUrl))#http%3a%2f%2fwrite.blog.csdn.net%2f')
??? homeReq.add_header('User-Agent', 'Mozilla/5.0 (compatible; MSIE 9.0; Windows NT 6.1; WOW64; Trident/5.0)');
??? #open access url
??? resp = urllib.request.urlopen(homeReq)
2.用python構造post
#build request for login url
??? #post data
??? postdata = {
??? ??? 'u':username,
??? ??? 'p':password,
??? ??? 'remember':'1',
??? ??? 't':'log',
??? ??? 'f':urllib.parse.quote(moduleUrl),
??? ??? }
??? postdata = urllib.parse.urlencode(postdata).encode('utf-8')
??? print(postdata)
??? req = urllib.request.Request(
???????? url = csdnLoginUrl,
???????? data = postdata)
??? req.add_header('Accept', 'text/html, application/xhtml+xml, */*');
??? req.add_header('Accept-Language', 'en-US')
??? req.add_header('Accept-Encoding', 'gzip, deflate')
??? req.add_header('Connection', 'Keep-Alive');
??? req.add_header('Referer', csdnAccessModuleUrl)
??? req.add_header('User-Agent', 'Mozilla/5.0 (compatible; MSIE 9.0; Windows NT 6.1; WOW64; Trident/5.0)');
??? #open login url
??? r = urllib.request.urlopen(req)
通過上面2個例子我們可以發現, 當Request的postdata賦值時,則為post方法,默認為get。
- 前言
- PythonPath在Windows 下的設置
- Sublime Text: [Decode error - output not utf-8]
- Python 寫文件時的Unicode設置
- python中文件打開的各個標識含義
- python 3中對list進行sort時,返回值為None
- python 3中使用getattr和*args時, 出現傳入參數不一致的問題
- import module, from module import funtion區別
- Python 中list, dictionary 與 file相互操作
- 編譯Python出現Tab,空格的問題
- Sublime Text2中Evernote 插件的使用
- python中全局變量的使用
- python中string和bool的轉換
- python中http的一些編碼轉換
- python中http請求中添加cookie支持
- python構造一個http請求
- python中如何定義main方法
- python為類定義構造函數
- python中print的幾種用法
- 自己寫的工具:把Evernote(印象筆記)的筆記導入到博客(Blog)中
- Python打包成exe
- python中lxml的應用