如何開始寫你的第一個python腳本——簡單爬蟲入門!

2020-12-13 雲飛學編程

好多朋友在入門python的時候都是以爬蟲入手,而網絡爬蟲是近幾年比較流行的概念,特別是在大數據分析熱門起來以後,學習網絡爬蟲的人越來越多,哦對,現在叫數據挖掘了!

其實,一般的爬蟲具有2個功能:取數據和存數據!好像說了句廢話。。。

而從這2個功能拓展,需要的知識就很多了:請求數據、反爬處理、頁面解析、內容匹配、繞過驗證碼、保持登錄以及資料庫等等相關知識,今天我們就來說說做一個簡單的爬蟲,一般需要的步驟!

存數據

先說存數據,是因為在初期學習的時候,接觸的少,也不需要太過於關注,隨著學習的慢慢深入,我們需要保存大批量的數據的時候,就需要去學習資料庫的相關知識了!這個我們隨後開篇單獨說明。

初期,我們抓到需要的內容後,只需要保存到本地,無非保存到文檔、表格(excel)等等幾個方法,這裡大家只需要掌握with語句就基本可以保證需求了。大概是這樣的:

with open(路徑以及文件名,保存模式) as f:f.write(數據)#如果是文本可直接寫入,如果是其他文件,數據為二進位模式更好

當然保存到excel表格或者word文檔需要用到 xlwt庫(excel)、python-docx庫(word),這個在網上很多,大家可以自行去學習。

取數據

囉嗦那麼多,終於到正題,怎麼來抓取我們想要的數據呢?我們一步步的來!

一般所謂的取網頁內容,指的是通過Python腳本實現訪問某個URL地址(請求數據),然後獲得其所返回的內容(HTML源碼,Json格式的字符串等)。然後通過解析規則(頁面解析),分析出我們需要的數據並取(內容匹配)出來。

在python中實現爬蟲非常方便,有大量的庫可以滿足我們的需求,比如先用requests庫取一個url(網頁)的源碼

import requests#導入庫url = '你的目標網址'response = requests.get(url) #請求數據print(response.text) #列印出數據的文本內容

這幾行代碼就可以獲得網頁的原始碼,但是有時候這裡面會有亂碼,為什麼呢?

因為中文網站中包含中文,而終端不支持gbk編碼,所以我們在列印時需要把中文從gbk格式轉為終端支持的編碼,一般為utf-8編碼。

所以我們在列印response之前,需要對它進行編碼的指定(我們可以直接指定代碼顯示的編碼格式為網頁本身的編碼格式,比如utf-8,網頁編碼格式一般都在原始碼中的<meta>標籤下的charset屬性中指定)。加上一行即可

response.encode = 'utf-8' #指定編碼格式

至此,我們已經獲取了網頁的原始碼,接下來就是在亂七八糟的原始碼中找到我們需要的內容,這裡就需要用到各種匹配方式了,常用的幾種方式有:正則表達式(re庫),bs4(Beautifulsoup4庫),xpath(lxml庫)!

建議大家從正則開始學習,最後一定要看看xpath,這個在爬蟲框架scrapy中用的很多!

通過各種匹配方式找到我們的內容後(注意:一般匹配出來的是列表),就到了上面所說的存數據的階段了,這就完成了一個簡單的爬蟲!

當然了,在我們具體寫代碼的時候,會發現很多上面沒有說到的內容,比如

獲取原始碼的時候遇到反爬,根本獲取不到數據有的網站需要登錄後才可以拿到內容遇到驗證碼獲取到內容後寫入文件出錯怎樣來設計循環,獲取大批量的內容甚至整站爬蟲等等,這些我們慢慢來研究!

總之,學習本身是一個漫長的過程,我們需要不斷的練習來增強我們的學習興趣,以及學到更紮實的知識!大家加油!

相關焦點

  • python爬蟲入門實戰!爬取博客文章標題和連結!
    最近有小夥伴和我留言想學python爬蟲,那麼就搞起來吧。準備階段爬蟲有什麼用呢?舉個最簡單的小例子,你需要《戰狼2》的所有豆瓣影評。最先想的做法可能是打開瀏覽器,進入該網站,找到評論,一個一個複製到文本中,保存,翻頁,接著複製,直到翻到最後一頁。
  • 聊聊學python轉行、具體學習方法、自學python用於辦公、寫爬蟲等...
    Python這幾年都挺火的,比如說應用於數據分析、機器學習、自動化辦公、寫爬蟲採集數據等等……因為我之前發過幾篇和python有關的推文,所以不止一個朋友加私信問我說,你是怎麼學的,能不能談一談學習的經驗和技巧。
  • Python新手爬蟲,簡單製作抓取廖雪峰的教程的小爬蟲
    在整個抓取過程中,除了普通的文本以外,還需要處理 3個地方,分別是:代碼、圖片、視頻,因為目前只寫到了文本文件,所以直接抓到圖片或者視頻的地址,標識清楚後寫入到 txt,這裡可以在進一步,寫到 word/pdf 或者其他文件,留待以後改進!
  • Python開發簡單爬蟲【學習資料總結】
    一、簡單爬蟲架構 簡單爬蟲架構 運行流程
  • Python爬蟲從入門到精通只需要三個月
    如何入門Python,為了能夠幫助大家更輕鬆的學好Python開發,Python爬數據,Python數據分析等相關理論知識,給大家共同分享自己一套Python學習生活資料,文章最後面的有附屬的相關資料,無論你是大牛還是小白,是想轉行還是想入行都可以來了解,一起不斷進步以及一起努力學習
  • Python真的值得學習嗎
    是一種動態的、面向對象的腳本語言。最初是用來編寫自動化腳本,隨著版本的不斷更新和語言新功能的添加,越來越多的時候,被用於獨立或者大型項目的開發。 1989年,Guido van Rossum在參加設計ABC(一種教學語言)後,萌生了想要開發一種新的計算機高級語言的想法。
  • python爬蟲系列教程,用python爬取全國範圍內的KFC店地址
    每到夜深人靜的時候,小編就開始肚子餓了,這時如果你在不熟悉的城市,想知道附近有沒有KFC店應該怎麼辦呢?下面羽憶教程教你會python爬取全國範圍內的KFC店地址,這是一篇python爬蟲系列的教程,簡單又能讓人填飽肚子。
  • 雲立方網科普:常用高效的Python爬蟲框架有哪些?
    Python是現在非常流行的程式語言,而爬蟲則是Python語言中最典型的應用,下面是總結的高效Python爬蟲框架,大家看看是否都用過呢。
  • Python在寫爬蟲方面有哪些優勢?
    Python是一種電腦程式設計語言,是一種動態的、面向對象的腳本語言。Python最初被設計用於編寫自動化腳本(shell),隨著版本的不斷更新和語言新功能的添加,越來越多被用於獨立的、大型項目的開發。
  • 開課吧:Python是什麼意思?為什麼有那麼多人學Python?
    PythonPython 是一個高層次的結合了解釋性、編譯性、互動性和面向對象的腳本語言。python非常容易上手,而且能幹很多事情,WEB開發,機器學習人工智慧,數據分析,量化投資,爬蟲等,基本可以應用到各行各業,而且大家都在做基於PYTHON的庫,使得PYTHON語言變成一門直接拿來就能用的語言,更像一種工具了,比如機器學習,可能理論很複雜,但是實際在PYTHON中僅僅幾行代碼就能實現,不用花太多時間用在碼代碼上面,python 現在是越來越火
  • Python新手學習網絡爬蟲要做什麼?
    爬蟲,被稱為網絡機器人,在FOAF社區中間,更經常的稱為網頁追逐者,是一種按照一定的規則,自動地抓取全球資訊網信息的程序或者腳本,主要用於搜尋引擎,它將一個網站的所有內容與連結進行閱讀,並建立相關的全文索引到資料庫中,然後跳到另一個網站。
  • Python網絡爬蟲
    而網絡爬蟲技術,則是大數據分析領域的第一個環節。(二):能從網絡上爬取什麼數據?所有在網頁能見到的數據都可以通爬蟲程序保存下來。(三):python爬蟲的流程獲取網頁——解析網頁(提取數據)——存儲數據1:獲取網頁:給一個網址發送請求,該網址會返回整個網頁的數據。
  • 電腦入門程式語言
    今天和大家介紹一下電腦入門編程學什麼語言更合適。首選python語言,python 是一門開源免費、通用型的腳本程式語言,現在社會上會python語言的人很吃香的。它上手簡單,功能強大,堅持「極簡主義」。
  • 網絡爬蟲作用有哪些?如何構建網絡爬蟲?
    它是用計算機語言編寫的程序或腳本,用於自動從Internet上獲取任何信息或數據。機器人掃描並抓取每個所需頁面上的某些信息,直到處理完所有能正常打開的頁面。網絡爬蟲大致有4種類型的結構:通用網絡爬蟲、聚焦網絡爬蟲、增量式網絡爬蟲、深層網絡爬蟲 。
  • python爬蟲整個體系闡述,基礎到進階
    大家經自學python爬蟲的時候總是會很迷茫,有時候看了在多的視頻,只會讓自己更加的蒙圈,所以我建議如果不是為了三分中熱情玩玩的朋友們,還是去找個系統教學。這裡為大家聊聊python爬蟲的整個體系。或許你會知道該怎麼一點點去學習。
  • Python 爬蟲面試題 170 道:2019 版
    90.寫一段匹配郵箱的正則表達式其他內容91.解釋一下 python 中 pass 語句的作用?97.列舉 5 個 Python 中的標準模塊98.如何在函數中設置一個全局變量99.pathlib 的用法舉例100.Python 中的異常處理,寫一個簡單的應用場景101.Python 中遞歸的最大次數,那如何突破呢?
  • 開課吧Python:Python爬蟲是什麼?爬蟲工程師薪資怎麼樣?
    為什麼總說爬蟲,找工作容易,工資還高,但是他們是什麼,能做什麼!你知道嗎?繼續往下看吧,我來告訴你答案。Python爬蟲是由Python程序開發的網絡爬蟲(webspider,webrobot),是按照一定規則自動抓取全球資訊網信息的程序或腳本。其實一般是通過程序在網頁上獲取你想要的數據,也就是自動抓取數據。為什麼需要用爬蟲?
  • 不知道Python爬蟲?這篇文章丟給他(內含框架結構)
    那麼,爬蟲也相當於模擬瀏覽器發送請求,獲得到HTML代碼。HTML代碼裡通常包含了標籤和文字信息,我們就從中提取到我們想要的信息。通常爬蟲是從某個網站的某個頁面開始,爬取這個頁面的內容,找到網頁中的其他連結地址,然後從這個地址爬到下一個頁面,這樣一直不停的爬下去,進去批量的抓取信息。那麼,我們可以看出網絡爬蟲就是一個不停爬取網頁抓取信息的程序。
  • Python爬蟲學到什麼程度就可以去找工作了?
    有朋友在群裡和大家討論,問的最多的問題就是,python 爬蟲學到什麼程度可以去找工作了,關於這點,和大家分享下我的理解。去招聘網上看看需求都有哪些,直接做個拉勾網爬蟲(有需要的私信)出結果了:仔細看看,我們可以得出以下幾點:1、 python 不是唯一可以做爬蟲的,很多語言都可以,
  • 介紹一下什麼是python(瘋狂Python)
    普通人,非專業搞編程的人,也能快速上手,也許你會問我python能幹什麼用,它的用處可多了:比如web開發(django,flask等),網絡爬蟲(scrapy等),數據分析(numpy,pandas,matplotlib庫等),人工智慧(Tenseflow等)等等應用的地方很多。那麼就讓我們從一個小白學起吧!1. Python是一種電腦程式設計語言。