Python新手爬蟲,簡單製作抓取廖雪峰的教程的小爬蟲

2021-01-04 雲飛學編程

先看幾張對比圖,分別是官網截圖和抓取下來的 txt文檔的截圖,不算那難看的排版的話,內容是一致的,圖片用 url替換了!

在整個抓取過程中,除了普通的文本以外,還需要處理 3個地方,分別是:代碼、圖片、視頻,因為目前只寫到了文本文件,所以直接抓到圖片或者視頻的地址,標識清楚後寫入到 txt,這裡可以在進一步,寫到 word/pdf 或者其他文件,留待以後改進!

Python 數據處理 Python編程從入門到實踐 核心編程基礎教程 網絡爬蟲入門書籍 python視頻編程從入門到精通 程序設計教材人民郵電

¥72.2

領3元券

話不多說,先來看看整個爬蟲過程吧!目標:廖雪峰官網—python教程

工具:pycharm、python3.6、requests庫、time庫、lxml庫

思路:

85 抓取所有的目錄章節 url

85 找到 url內教程主體所在的 div

85 遍歷 div下所有標籤,文本和代碼部分內容直接保存

85 區分其中的代碼、圖片、視頻 3個內容,分別以文本、url的形式保存並做好標識

85 加入時間計數,統計總用時

大致如上,我們先來抓取所有的章節 url,這裡我們用 xpath 來匹配 div,然後循環 div下的所有 a標籤的文本和 href屬性,這兩個部分為章節的名字和 url,當然 url部分需要拼接,加入域名就可以了!

Header和主頁信息,請自行添加哦!

取到章節信息後,還需要判斷是否存在子章節,存在則需要繼續取,觀察網頁後發現子章節所在標籤為 a標籤的平級 div標籤,用 if判斷就可以,網頁結構如下:

代碼我們這樣寫

其中 get_summary()函數是我自定義的下載函數,代碼如下

傳入 3個參數:url是開始我們抓到的章節或者子章節的 url,name為章節名,title為子章節名,默認為空,這樣做是為了在寫入文件時進行判斷,大家自行查看就可以 ,注意的是前面說到的 3個地方,文章中的代碼部分是在<pre>標籤下,和<p>標籤一樣取出內容即可,圖片和視頻所在的標籤分別做判斷,存在則將 url寫入文本!

最終運行程序結果

在 txt下,不要選擇自動換行,否則,代碼部分就不好看了!整個爬虫部分很簡單,複雜的部分是處理各種標籤及標籤下的其他內容,最後寫入文件因為不需要排版,反而簡單了。

歡迎大家來找我一起交流,完善代碼!

相關焦點

  • 廖雪峰的python教程為什麼有人說看不懂?明明都在說廖雪峰厲害呀
    其實廖大的Python教程已經很友好了,差不多是把飯送到你嘴邊了。這不是廖大教程的問題,而是一個基礎代碼技能和實際應用需求的代碼技能差距太遠導致的。如果是新手,只學會了廖大Python教程,那約等於什麼都寫不出來。除了課後習題,什麼都寫不出來。
  • Python爬蟲入門教程:超級簡單的Python爬蟲教程
    這是一篇詳細介紹 Python 爬蟲入門的教程,從實戰出發,適合初學者。讀者只需在閱讀過程緊跟文章思路,理清相應的實現代碼,30 分鐘即可學會編寫簡單的 Python 爬蟲。這篇 Python 爬蟲教程主要講解以下 5 部分內容:了解網頁;使用 requests 庫抓取網站數據;
  • python爬蟲入門實戰!爬取博客文章標題和連結!
    最近有小夥伴和我留言想學python爬蟲,那麼就搞起來吧。準備階段爬蟲有什麼用呢?舉個最簡單的小例子,你需要《戰狼2》的所有豆瓣影評。最先想的做法可能是打開瀏覽器,進入該網站,找到評論,一個一個複製到文本中,保存,翻頁,接著複製,直到翻到最後一頁。而爬蟲只要寫腳本,執行,泡杯咖啡,坐等他執行完。
  • Python爬蟲入門,快速抓取大規模數據
    大到各類搜尋引擎,小到日常數據採集,都離不開網絡爬蟲。爬蟲的基本原理很簡單,遍歷網絡中網頁,抓取感興趣的數據內容。這篇文章會從零開始介紹如何編寫一個網絡爬蟲抓取數據,然後會一步步逐漸完善爬蟲的抓取功能。
  • @Python小白,一文讓你掌握Python爬蟲
    簡明教程: http://t.cn/RMP60Nw這相對於菜鳥教程,更加的精煉和簡介,也是非常的棒!廖雪峰的Python3教程: http://t.cn/RK0qGu7相對於前面的教程來說,廖大的更加深入,我當初是直接看的廖大,看到後面雲裡霧裡,所以完全零基礎的小夥伴,還是先嘗試其他比較簡單的好一點。
  • Python網絡爬蟲之必備工具
    網絡爬蟲(又被稱為網頁蜘蛛,網絡機器人),是一種按照一定的規則,自動的抓取全球資訊網信息的程序或者腳本。那麼要學會並精通Python網絡爬蟲,我們需要準備哪些知識和工具那?1 Python基礎知識Python作為現在最流行的程式語言之一,其強大之處也是毋庸置疑的,利用Python寫網絡爬蟲是最好不過的選擇啦,所以萬丈高樓平地起,學習網絡爬蟲最最基本的就是要掌握Python編程的基礎知識,了解以下幾點即可:基本數據結構
  • 初學者如何用「python爬蟲」技術抓取網頁數據?
    而這裡的「技術手段」就是指網絡爬蟲。 今天,小編將與您分享一個爬蟲的基本知識和入門教程:什麼是爬蟲?網絡爬蟲,也叫作網絡數據採集,是指通過編程從Web伺服器請求數據(HTML表單),然後解析HTML以提取所需的數據。
  • python爬蟲-urllib、urllib2、requests三者關係
    抓取始終是一個很大的需求,小到單個頁面,某個站點,大到搜尋引擎(百度、谷歌)的全網抓取。只要人能看到的東西,理論上都是爬蟲可以獲取的。不論靜態頁面還是動態頁面。也不論pc端的頁面還是移動端的app。話有點大,但這就是本系列的目的。
  • Python新手都可以做的爬蟲,抓取網上 OJ 題庫信息
    最近有朋友在做 OJ 題庫,順手做個小爬蟲,導出一份題庫列表來看看!目標:浙江大學題庫工具:python3.6,requests 庫、lxml 庫、pycharm思路:先找到網頁中題庫所在的位置然後我們點擊第一頁和後面幾頁,看看 url 的變化發現規律了嗎?
  • 如何快速學會Python爬蟲(入門篇)
    Python爬蟲實戰六之抓取愛問知識人問題並保存至資料庫7. Python爬蟲實戰七之計算大學本學期績點8. Python爬蟲實戰八之利用Selenium抓取淘寶匿名旺旺三、爬蟲利器1.Python爬蟲進階四之PySpider的用法第二(第一的姊妹篇):Python爬蟲入門教程Python版本:2.7教程目錄:[Python]網絡爬蟲(一):抓取網頁的含義和
  • Python新手學習網絡爬蟲要做什麼?
    Python網絡爬蟲學習,不需要你深入學習html,只要知道掌握它常用的簡單標籤跟知識點就行。二、比起html,js建議多少懂一點js比html難很多,但多少也要知道它的一些知識原理,有條件的推薦看下《JavaScript DOM編程藝術》和《Javascript高級程序設計》的前三章這兩本書,能讓你對js有一定的認識。
  • Python爬蟲入門,快速抓取大規模數據(完結篇)
    前面的幾篇文章講解了爬蟲的基本原理,並使用了一些代碼來做演示。這是爬蟲系列的最後一篇,這篇文章會對前面的內容總結一下,沒有新的內容。Python基本環境的搭建,爬蟲的基本原理以及爬蟲的原型Python爬蟲入門,快速抓取大規模數據如何使用BeautifulSoup對網頁內容進行提取Python爬蟲入門,快速抓取大規模數據(第二部分)爬蟲運行時數據的存儲數據,以SQLite和MySQL作為示例Python爬蟲入門,快速抓取大規模數據(第三部分)使用selenium webdriver
  • Python爬蟲入門,快速抓取大規模數據(第四部分)
    如果沒有讀過前兩部份的讀者,建議先看前面幾部份:Python爬蟲入門,快速抓取大規模數據Python爬蟲入門,快速抓取大規模數據(第二部分)Python爬蟲入門,快速抓取大規模數據(第三部分)當前大部分網站都使用JS動態的加載內容,瀏覽器執行JS並生成網頁內容。
  • Python爬蟲入門(一):三種爬蟲模塊
    本來我是極其想用Java寫這個教程的(多用會,萬一以後就是Java程式設計師呢?),但是IDEA不提錯這毛病已經大半年了,Eclipse被我卸了,MyEclipse到期了,VScode倒是可以,但是它對jar包的引入比較迷……一言以蔽之就是懶,所以最後還是回到了python。
  • Python開發簡單爬蟲【學習資料總結】
    一、簡單爬蟲架構 簡單爬蟲架構 運行流程
  • python爬蟲100個入門項目
    11新浪微博爬蟲分享(一天可抓取 1300 萬條數據)12新浪微博分布式爬蟲分享13python爬蟲教程,帶你從零到一14豆瓣讀書的爬蟲15鏈家網和貝殼網房價爬蟲6180s 影視資源爬蟲 - JianSo_Movie62各種爬蟲63心靈毒雞湯64糗事百科65python爬蟲的時候對Json數據的解析66秒爬,python爬蟲中的多線程,多進程
  • 教程|Python?Web頁面抓取:循序漸進
    導語:今天,小Oxy要為大家帶來Pytho中Web頁面的抓取教程,跟著小Oxy往下看吧!
  • python爬蟲框架有哪些
    打開APP python爬蟲框架有哪些 陳翠 發表於 2019-03-22 16:13:44
  • 教程|Python Web頁面抓取:循序漸進
    今天,小Oxy要為大家帶來Python中Web頁面的抓取教程,跟著小Oxy往下看吧!大家不要看到代碼就覺得頭疼或是特別困難,其實Web爬蟲是非常簡單的。Python是面向對象的語言,而且與其他語言相比,類和對象都更容易操作,所以是Python Web爬蟲最簡單的入門方法之一。
  • python爬蟲系列教程,用python爬取全國範圍內的KFC店地址
    每到夜深人靜的時候,小編就開始肚子餓了,這時如果你在不熟悉的城市,想知道附近有沒有KFC店應該怎麼辦呢?下面羽憶教程教你會python爬取全國範圍內的KFC店地址,這是一篇python爬蟲系列的教程,簡單又能讓人填飽肚子。