?最近在學(xué)習(xí)Python的爬蟲,然后意外發(fā)現(xiàn)了python+selenium這個很神奇的組合?;蛟S你還不知道selenium是什么,不過沒關(guān)系,我先給你百度一下:
Selenium (瀏覽器自動化測試框架):
Selenium 是一個用于Web應(yīng)用程序測試的工具。
Selenium測試直接運行在瀏覽器中,就像真正的用戶在操作一樣
。支持的瀏覽器包括IE(7, 8, 9, 10, 11),Mozilla Firefox,Safari,Google Chrome,Opera等。這個工具的主要功能包括:測試與瀏覽器的兼容性——測試你的應(yīng)用程序看是否能夠很好得工作在不同瀏覽器和操作系統(tǒng)之上。測試系統(tǒng)功能——創(chuàng)建回歸測試檢驗軟件功能和用戶需求。支持自動錄制動作和自動生成 .Net、Java、Perl等不同語言的測試腳本。
原諒我是一個沒怎么見過世面的程序員,當(dāng)我看到代碼運行之后電腦自動打開瀏覽器那一刻覺得簡直不要太酷?。?!所以我必須要寫一篇文來和大家一起分享一些喜悅的心情。
首先我們先確定好要爬取的目標(biāo)網(wǎng)頁:
豆瓣讀書下一個標(biāo)簽為小說的頁面:https://book.douban.com/tag/%E5%B0%8F%E8%AF%B4:

敲黑板!干貨來了同志們!下面我將帶領(lǐng)著大家用16行代碼實現(xiàn)我們的這個爬蟲。僅僅需要16行代碼,看了不吃虧,看了不上當(dāng)?。?!
- 先來解析一下我們想要爬取的目標(biāo)網(wǎng)頁的結(jié)構(gòu):
-
先找到包含所有圖書內(nèi)容的標(biāo)簽——一個類名為content的div盒子:
-
再找包含每一本書內(nèi)容的標(biāo)簽——li:雖然我們發(fā)現(xiàn)了每一本書的內(nèi)容都包含在li標(biāo)簽下,但是還沒有找到包含具體文本信息的標(biāo)簽,所以還要繼續(xù)找。
找到了,就是它:可愛的類名為“info”的div盒子?。?!
-
分析好網(wǎng)頁結(jié)構(gòu)之后,現(xiàn)在我們就可以開始動手寫代碼啦。前方高能?。。?/p>
源代碼如下:
#coding:utf-8from selenium import webdriverclass DouBan:
def __init__(self):
self.dr = webdriver.Chrome() #指定selenium進(jìn)行自動化操作時選用谷歌瀏覽器
self.dr.get('https://book.douban.com/tag/%E5%B0%8F%E8%AF%B4/') #要打開的網(wǎng)頁
def print_content(self):
total_book = self.dr.find_element_by_id('wrapper') #先定位到包含所有圖書的div盒子中
books = total_book.find_elements_by_class_name('info') #找到已經(jīng)定位到的div盒子里的每一個包含圖書介紹的子div
i = 1
for book in books: #通過for循環(huán)依次把每一本圖書的內(nèi)容取出來
print (str(i)+ book.text + '\n') #將爬取到的內(nèi)容打印
i += 1
def quit(self):
self.dr.quit() #爬取數(shù)據(jù)完成后關(guān)閉瀏覽器
DouBan().print_content()
selenium自動化運行的全程gif:(此處忽略一個許嵩迷妹的電腦桌面)

大家有沒有看到,代碼運行之后電腦自己打開了瀏覽器進(jìn)入我們的目標(biāo)頁面,然后爬取完我們想要的數(shù)據(jù)之后又自己關(guān)閉了瀏覽器,很神奇有沒有!?。?/p>
抓取的數(shù)據(jù)結(jié)果:

怎么樣,是不是覺得超級簡單易懂?那還不趕緊pip install selenium 來自己試一試!
要是安裝selenium的時候遇到問題也可以私信我找解決方案哦,過兩天有時間我也會寫一篇關(guān)于selenium安裝的文章,所以你要是喜歡的這篇文章的話可以考慮關(guān)注我一下啊,哈哈哈?。。?/p>
人生苦短,一起學(xué)python啊!


