1岛抄,Python urllib和urllib2 庫的用法
2.URL的含義
URL,即統(tǒng)一資源定位符狈茉,也就是我們說的網(wǎng)址夫椭,統(tǒng)一資源定位符是對可以從互聯(lián)網(wǎng)上得到的資源的位置和訪問方法的一種簡潔的表示,是互聯(lián)網(wǎng)上標(biāo)準(zhǔn)資源的地址氯庆〔淝铮互聯(lián)網(wǎng)上的每個文件都有一個唯一的URL,它包含的信息指出文件的位置以及瀏覽器應(yīng)該怎么處理它堤撵。
URL的格式由三部分組成:
①第一部分是協(xié)議(或稱為服務(wù)方式)仁讨。
②第二部分是存有該資源的主機(jī)IP地址(有時也包括端口號)。
③第三部分是主機(jī)資源的具體地址实昨,如目錄和文件名等陪竿。
爬蟲爬取數(shù)據(jù)時必須要有一個目標(biāo)的URL才可以獲取數(shù)據(jù),因此屠橄,它是爬蟲獲取數(shù)據(jù)的基本依據(jù),準(zhǔn)確理解它的含義對爬蟲學(xué)習(xí)有很大幫助闰挡。
3.POST和GET數(shù)據(jù)傳送
大多數(shù)網(wǎng)站都是動態(tài)網(wǎng)頁锐墙,需要你動態(tài)地傳遞參數(shù)給它,它做出對應(yīng)的響應(yīng)长酗。所以溪北,在訪問時,我們需要傳遞數(shù)據(jù)給它夺脾。最常見的情況是什么之拨?對了,就是登錄注冊的時候呀咧叭。
把數(shù)據(jù)用戶名和密碼傳送到一個URL蚀乔,然后你得到服務(wù)器處理之后的響應(yīng),這個該怎么辦菲茬?
數(shù)據(jù)傳送分為POST和GET兩種方式吉挣,兩種方式有什么區(qū)別呢?
最重要的區(qū)別是GET方式是直接以鏈接形式訪問婉弹,鏈接中包含了所有的參數(shù)睬魂,當(dāng)然如果包含了密碼的話是一種不安全的選擇,不過你可以直觀地看到自己提交了什么內(nèi)容镀赌。POST則不會在網(wǎng)址上顯示所有的參數(shù)氯哮,不過如果你想直接查看提交了什么就不太方便了,大家可以酌情選擇商佛。
4.user.agent
importurllib
importurllib2
url='http://www.server.com/login'
user_agent='Mozilla/4.0 (compatible; MSIE 5.5; Windows NT)'
Mozilla/5.0 (Windows NT 6.3; WOW64)?
X-DevTools-Emulate-Network-Conditions-Client-Id:
4D2A5947-8A8F-48F1-BF66-8C421C2A5C1C
values={'username':'cqc','password':'XXXX'}
headers={'User-Agent':user_agent}
data=urllib.urlencode(values)
request=urllib2.Request(url,data,headers)
response=urllib2.urlopen(request)
page=response.read()