環境:Python2.7.9 / Sublime Text 2 / Chrome
1.url訪問,直接調用urllib庫函數即可
import urllib2url='http://www.baidu.com/'response = urllib2.urlopen(url)html=response.read()PRint html
2.帶參數的訪問,以baidu搜索功能為例
使用Chrome瀏覽器訪問效果,Chrome搜索引擎設置為baidu,地址欄中輸入test,效果如下:
可以看到baidu搜索的url為 https://www.baidu.com/s?ie=UTF-8&wd=test
修改代碼,增加訪問參數
# coding=utf-8import urllibimport urllib2#url地址url='https://www.baidu.com/s'#參數values={ 'ie':'UTF-8', 'wd':'test' }#進行參數封裝data=urllib.urlencode(values)#組裝完整urlreq=urllib2.Request(url,data)#訪問完整urlresponse = urllib2.urlopen(req)html=response.read()print html
運行代碼,(Sublime Text 如果出現Decode error,需要將Python.sublime-build設置為"encoding": "utf-8")得到結果為
提示訪問頁面不存在,這個時候需要考慮一下訪問方式的問題。使用Chrome開發者工具,監測Network,確定訪問方式為GET

urllib2.Request(url,data) 訪問方式為POST方式,改用GET方式進行嘗試,需要手動組裝URL,更改代碼為
# coding=utf-8import urllibimport urllib2#url地址url='https://www.baidu.com/s'#參數values={ 'ie':'UTF-8', 'wd':'test' }#進行參數封裝data=urllib.urlencode(values)#組裝完整url#req=urllib2.Request(url,data)url=url+'?'+data#訪問完整url#response = urllib2.urlopen(req)response = urllib2.urlopen(url)html=response.read()print html
再次運行,獲得結果為
https發生了重定向,需要改用http
# coding=utf-8import urllibimport urllib2#url地址#url='https://www.baidu.com/s'url='http://www.baidu.com/s'#參數values={ 'ie':'UTF-8', 'wd':'test' }#進行參數封裝data=urllib.urlencode(values)#組裝完整url#req=urllib2.Request(url,data)url=url+'?'+data#訪問完整url#response = urllib2.urlopen(req)response = urllib2.urlopen(url)html=response.read()print html
再次運行,可實現正常訪問
新聞熱點
疑難解答