import urllib2
response = urllib2.urlopen("http://taobao.com")
print response.read()
綜上:三行代碼就能簡(jiǎn)單地將淘寶網(wǎng)頁(yè)爬取出來(lái),這是根據(jù)url路由爬取的肺然,比較粗暴
分析:
1.此代碼需在python2環(huán)境下編寫(xiě)
2.urllib2是python2內(nèi)置的一個(gè)系統(tǒng)工具庫(kù)
urllib2功能 (5大功能)
1.獲取web頁(yè)面
2.在遠(yuǎn)程服務(wù)器上驗(yàn)證
3.額外數(shù)據(jù)提交蔫缸,像一些:表單提交(GET和POST)
4.異常處理
5.非http協(xié)議通信(像ftp協(xié)議通信等等)
urllib2中urlopen方法的分析:
urlopen() 對(duì)象主要用于打開(kāi) 括號(hào)里指定的網(wǎng)站 所對(duì)應(yīng)的內(nèi)容
urlopen中有三個(gè)參數(shù):
1.url :指路徑腿准,必須填充的內(nèi)容* 列如:http://www.taobao.com
2.data:指訪問(wèn)url時(shí)要傳送的數(shù)據(jù)际起,默認(rèn)為空
3.timeout:設(shè)置超時(shí)時(shí)間,一般為默認(rèn)
對(duì)于response的處理
1.直接打印response
print response
#結(jié)果如下
#<addinfourl at 84866632L whose fp = <socket._fileobject object at 0x00000000050831B0>>
若直接打印吐葱,結(jié)果是url路由街望,是路徑內(nèi)容
所以需要借助 response 里的 read()方法 ,利用該方法弟跑,返回的是網(wǎng)頁(yè)內(nèi)容灾前,所以是
print response.read()
*稍微小心地爬取數(shù)據(jù) (request的分析)
request請(qǐng)求
import urllib2
request = urllib2.Request("http://www.taobao.com")
response = urllib2.urlopen(request)
print response.read()
綜上:該代碼是第一個(gè)代碼的擴(kuò)充,由只有響應(yīng)(response),增加進(jìn)去一個(gè)請(qǐng)求(request)
在代碼的第二行孟辑,是一個(gè)請(qǐng)求對(duì)象哎甲,提出請(qǐng)求,響應(yīng)請(qǐng)求饲嗽,
**request對(duì)象是利用內(nèi)存來(lái)存放我們客戶(hù)對(duì)服務(wù)器端提出的請(qǐng)求的一段信息的相關(guān)內(nèi)容