閒來無事,學習一下爬蟲的編寫過程,總歸也算是python的重點應用方式啊。首先先對爬蟲做乙個總結,爬蟲就是按照乙個乙個的鏈結爬滿網路,然後將需要的內容儲存下來。目前只是初級爬蟲的編寫,主要目的是學習流程。
1、爬蟲爬蟲首先要從乙個鏈結開始,就顯示蜘蛛一開始搭建的那根線,從那根線之爬滿每乙個鏈結,然後從這些鏈結中再向外爬,由此才可以爬完乙個**,或者再打一點爬滿全網。搜尋引擎就是爬蟲功能的乙個重要例項
2、首先獲取初始鏈結,這次編寫我們從真愛網開始玩起,目的是為了學習技術,首先使用python的urllib庫,這個庫可以直接獲取網頁的源**,具體使用方式如下:
def gethtml(url):
page=urllib.urlopen(url)
html=page.read()
return html
這樣就可以直接獲取珍愛網首頁的html資訊再用
print gethtml(將資訊列印。單還要注意編碼問題
2、在上一步裡我們獲得了珍愛網的首頁html,單很明顯首頁是不會展示大量的的,許多的資訊需要登入之後才能取得,在這時候urllib庫就力不從心了,此時我選擇selenium來進行模擬登入和以後的搜尋操作
3、對於登入搜尋這類簡單的html操作,基本可以略過直接上**:
def
zhenai_login
(myusername,mypassword):
browser = webdriver.firefox()
browser.get('')
time.sleep(3)
username = browser.find_element_by_id('jcloginname')
username.send_keys(str(myusername))
password = browser.find_element_by_id('jcloginpass')
password.send_keys(mypassword)
logon = browser.find_element_by_link_text('登入')
logon.click()
time.sleep(3)
search=browser.find_element_by_link_text('搜尋')
search.click()
time.sleep(3)
return browser
此時我們就得到了乙個登入後的搜尋條件的webdriver物件,後面可以直接使用這個物件獲取介面的html資訊
def
scroll
(driver):
driver.execute_script("""
(function ()
else
}
settimeout(f, 1000);
})();
""")
直接將在網頁介面載入js**,使之進行從上往下的翻頁,就我估算每翻一次業大約有20張被載入,因此要獲取大約500張就需要迴圈翻頁25次,要是10000張就需要500次,希望你的瀏覽器可以挺住
def
getimage
(html):
reg =r']*src\s*=\s*"([^"]*)"[^>]*>'
imgre=re.compile(reg)
imglist=re.findall(imgre,html)
return imglist
從函式中可以看出正則的重要內容為以
def
downloadimage
(imglist):
count=1
for img in imglist:
try:
urllib.urlretrieve(img,filename=u"e:/珍愛網/%s.jpg"%count)
except exception,e:
print
'something si wroing:'+str(e)
count+=1
很簡單的**就不細說了,就主要使用rulretrive()函式,注意使用異常捕獲,要不只要有乙個鏈結出現問題,那整個函式就斷掉了
7、最後貼一下簡單的成果(成果就不貼了笑哭了)
爬蟲學習(1)
2015年11月1日 no comments article 爬蟲,顧名思義,就是在網際網路上爬行的程式,能抓取內容,利用正規表示式匹配後,則能找到想要的內容。import urllib2 response urllib2.urlopen print response.read response是乙...
Magical爬蟲 學習 1
最開始了解python的時候就有聽說爬蟲,感覺好神奇!學完pyhton基礎些的知識後就在想要繼續學點什麼,就這個啦 先在網上找了很多關於爬蟲的東西瞅了瞅,又看到了這個python實戰 一周學會爬取網頁!完整課程是四周的,要交些學費,我準備先拿免費教程上上手 嘿嘿 是網易雲課堂上的課程,講的真的很好,...
爬蟲學習筆記1
目錄通過程式設計向網路伺服器請求資料 html表單 然後解析html,提取出自己想要的資料。哇 為何有種相見恨晚的趕腳?基礎知識可以參考一下崔慶才老師的官方部落格,基本知識點都提到了,就是不太深,但是作為入門夠了.這個鏈結的中文釋義就是,可以https這個協議訪問的資源,位於主機blog.csdn....