如果要進行用戶端和服務端的消息傳遞,我們可以使用Http協定請求進行。
GET請求會通過URL網址傳遞資訊比如在百度上查找一個關鍵字hello,使用爬蟲自動實作這個過程。
思路如下:
(1)建構對應的url位址,該URL位址包含GET請求的字段名和字段内容等資訊,并且URl滿足get請求的格式,即“http://網址? 字段名1=字段内容&字段名2=字段内容2“
(2)以對應的URL為參數,建構Request對象。
(3)通過urlopen()打開建構的request對象。
(4)按需求進行之後的操作。
import urllib.request
keywd="hello"
url="http://www.baidu.com/?wd="+keywd
req=urllib.request.Request(url)
data=urllib.request.urlopen(req).read
但是當檢索的内容是中文時,會出現編碼錯誤:
UnicodeEncodeError: 'ascii' codec can't encode characters in position 9-10: ordinal not in range(128)
此時可以對代碼進行修改:
import urllib.request
keywd="天才"
key_code=urllib.request.quote(keywd)
url="http://www.baidu.com/?wd="+key_code
req=urllib.request.Request(url)
data=urllib.request.urlopen(req).read