16行python代碼帶你爬取豆瓣讀書頁面

?最近在學(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):
  1. 先找到包含所有圖書內(nèi)容的標(biāo)簽——一個類名為content的div盒子:
  1. 再找包含每一本書內(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啊!
最后賣個萌,哈哈
?著作權(quán)歸作者所有,轉(zhuǎn)載或內(nèi)容合作請聯(lián)系作者
【社區(qū)內(nèi)容提示】社區(qū)部分內(nèi)容疑似由AI輔助生成,瀏覽時請結(jié)合常識與多方信息審慎甄別。
平臺聲明:文章內(nèi)容(如有圖片或視頻亦包括在內(nèi))由作者上傳并發(fā)布,文章內(nèi)容僅代表作者本人觀點,簡書系信息發(fā)布平臺,僅提供信息存儲服務(wù)。

相關(guān)閱讀更多精彩內(nèi)容

  • Spring Cloud為開發(fā)人員提供了快速構(gòu)建分布式系統(tǒng)中一些常見模式的工具(例如配置管理,服務(wù)發(fā)現(xiàn),斷路器,智...
    卡卡羅2017閱讀 136,578評論 19 139
  • Android 自定義View的各種姿勢1 Activity的顯示之ViewRootImpl詳解 Activity...
    passiontim閱讀 179,094評論 25 709
  • 問答題47 /72 常見瀏覽器兼容性問題與解決方案? 參考答案 (1)瀏覽器兼容問題一:不同瀏覽器的標(biāo)簽?zāi)J(rèn)的外補...
    _Yfling閱讀 14,162評論 1 92
  • 轉(zhuǎn)過一道九十度直角一樣的彎 曲折的路開始一路下坡 蜿蜿蜒蜒,沿著一條潺潺的溪流 向著它流來方向前進(jìn)。 你可能不知道...
    金永輝煌閱讀 1,999評論 23 12
  • -1- 大家好,我是榴蓮鎂奕。愛榴蓮,愛寫...
    鎂沁閱讀 1,240評論 0 5

友情鏈接更多精彩內(nèi)容