python爬蟲基本知識
爬蟲簡介
根據(jù)百度百科定義:網(wǎng)絡(luò)爬蟲(又被稱為網(wǎng)頁蜘蛛,網(wǎng)絡(luò)機(jī)器人,在FOAF社區(qū)中間,更經(jīng)常的稱為網(wǎng)頁追逐者),是一種按照一定的規(guī)則,自動(dòng)地抓取萬維網(wǎng)信息的程序或者腳本。另外一些不常使用的名字還有螞蟻、自動(dòng)索引、模擬程序或者蠕蟲。
隨著大數(shù)據(jù)的不斷發(fā)展,爬蟲這個(gè)技術(shù)慢慢走入人們的視野,可以說爬蟲是大數(shù)據(jù)應(yīng)運(yùn)而生的產(chǎn)物,至少我解除了大數(shù)據(jù)才了解到爬蟲這一技術(shù)
隨著數(shù)據(jù)的海量增長,我們需要在互聯(lián)網(wǎng)上選取所需要的數(shù)據(jù)進(jìn)行自己研究的分析和實(shí)驗(yàn)。這就用到了爬蟲這一技術(shù),下面就跟著小編一起初遇python爬蟲!
一、請求-響應(yīng)
在利用python語言實(shí)現(xiàn)爬蟲時(shí),主要用到了urllib和urllib2兩個(gè)庫。首先用一段代碼說明如下:
import urllib import urllib2 url="http://www.baidu.com" request=urllib2.Request(url) response=urllib2.urlopen(request) print response.read()
我們知道一個(gè)網(wǎng)頁就是以html為骨架,js為肌肉,css為衣服所構(gòu)成的。上述代碼所實(shí)現(xiàn)的功能就是把百度網(wǎng)頁的源碼爬取到本地。
其中,url為要爬取的網(wǎng)頁的網(wǎng)址;request發(fā)出請求,response是接受請求后給出的響應(yīng)。最后用read()函數(shù)輸出的就是百度網(wǎng)頁的源碼。
二、GET-POST
兩者都是向網(wǎng)頁傳遞數(shù)據(jù),最重要的區(qū)別是GET方式是直接以鏈接形式訪問,鏈接中包含了所有的參數(shù),當(dāng)然如果包含了密碼的話是一種不安全的選擇,不過你可以直觀地看到自己提交了什么內(nèi)容。
POST則不會在網(wǎng)址上顯示所有的參數(shù),不過如果你想直接查看提交了什么就不太方便了,大家可以酌情選擇。
POST方式:
import urllib
import urllib2
values={'username':'2680559065@qq.com','Password':'XXXX'}
data=urllib.urlencode(values)
url='https://passport.csdn.net/account/login?from=http://my.csdn.net/my/mycsdn'
request=urllib2.Request(url,data)
response=urllib2.urlopen(request)
print response.read()
GET方式:
import urllib
import urllib2
values={'username':'2680559065@qq.com','Password':'XXXX'}
data=urllib.urlencode(values)
url = "http://passport.csdn.net/account/login"
geturl = url + "?"+data
request=urllib2.Request(geturl)
response=urllib2.urlopen(request)
print response.read()
三、異常處理
處理異常時(shí),用到了try-except語句。
import urllib2
try:
response=urllib2.urlopen("http://www.xxx.com")
except urllib2.URLError,e:
print e.reason
總結(jié)
以上所述是小編給大家介紹的python爬蟲基本知識,希望對大家有所幫助,如果大家有任何疑問請給我留言,小編會及時(shí)回復(fù)大家的。在此也非常感謝大家對腳本之家網(wǎng)站的支持!
相關(guān)文章
pd.DataFrame中的幾種索引變換的實(shí)現(xiàn)
本文主要介紹了pd.DataFrame中的幾種索引變換的實(shí)現(xiàn),文中通過示例代碼介紹的非常詳細(xì),對大家的學(xué)習(xí)或者工作具有一定的參考學(xué)習(xí)價(jià)值,需要的朋友們下面隨著小編來一起學(xué)習(xí)學(xué)習(xí)吧2022-06-06
Python3如何根據(jù)函數(shù)名動(dòng)態(tài)調(diào)用函數(shù)
這篇文章主要介紹了Python3如何根據(jù)函數(shù)名動(dòng)態(tài)調(diào)用函數(shù)問題,具有很好的參考價(jià)值,希望對大家有所幫助,如有錯(cuò)誤或未考慮完全的地方,望不吝賜教2023-11-11
Python+OpenCV實(shí)現(xiàn)定位二維碼
這篇文章主要為大家詳細(xì)介紹了如何利用Python和OpenCV實(shí)現(xiàn)定位二維碼功能,文中的示例代碼講解詳細(xì),感興趣的小伙伴可以跟隨小編一起學(xué)習(xí)一下2023-12-12
Python如何將給定字符串中的大寫英文字母按以下對應(yīng)規(guī)則替換
這篇文章主要介紹了Python如何將給定字符串中的大寫英文字母按以下對應(yīng)規(guī)則替換,具有很好的參考價(jià)值,希望對大家有所幫助。如有錯(cuò)誤或未考慮完全的地方,望不吝賜教2021-10-10
Python構(gòu)造函數(shù)與析構(gòu)函數(shù)超詳細(xì)分析
在python之中定義一個(gè)類的時(shí)候會在類中創(chuàng)建一個(gè)名為__init__的函數(shù),這個(gè)函數(shù)就叫做構(gòu)造函數(shù)。它的作用就是在實(shí)例化類的時(shí)候去自動(dòng)的定義一些屬性和方法的值,而析構(gòu)函數(shù)恰恰是一個(gè)和它相反的函數(shù),這篇文章主要介紹了Python構(gòu)造函數(shù)與析構(gòu)函數(shù)2022-11-11
PyCharm插件開發(fā)實(shí)踐之PyGetterAndSetter詳解
這篇文章主要介紹了PyCharm插件開發(fā)實(shí)踐-PyGetterAndSetter,本文給大家介紹的非常詳細(xì),對大家的學(xué)習(xí)或工作具有一定的參考借鑒價(jià)值,需要的朋友可以參考下2021-10-10
人工智能——K-Means聚類算法及Python實(shí)現(xiàn)
這篇文章主要介紹了人工智能——K-Means聚類算法及Python實(shí)現(xiàn),一個(gè)能夠找到我圈出的這?些點(diǎn)集的算法,就被稱為聚類算法,下面就來看看文章具體的介紹吧2022-01-01

