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

2020-12-03 雲飛學編程

好多朋友在入門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爬蟲入門二之爬蟲基礎了解3. Python爬蟲入門三之Urllib庫的基本使用4. Python爬蟲入門四之Urllib庫的高級用法5. Python爬蟲入門五之URLError異常處理6.
  • Python新手爬蟲,簡單製作抓取廖雪峰的教程的小爬蟲
    在整個抓取過程中,除了普通的文本以外,還需要處理 3個地方,分別是:代碼、圖片、視頻,因為目前只寫到了文本文件,所以直接抓到圖片或者視頻的地址,標識清楚後寫入到 txt,這裡可以在進一步,寫到 word/pdf 或者其他文件,留待以後改進!
  • 初學者如何用「python爬蟲」技術抓取網頁數據?
    想要入門Python 爬蟲首先需要解決四個問題:1.熟悉python編程2.了解HTML3.了解網絡爬蟲的基本原理4.學習使用python爬蟲庫1、熟悉python編程剛開始入門爬蟲,初學者無需學習python的類,多線程,模塊和其他稍微困難的內容。
  • Python開發簡單爬蟲【學習資料總結】
    一、簡單爬蟲架構 簡單爬蟲架構 運行流程
  • 從零開始寫Python爬蟲,四大工具你值得擁有!
    如果你正在學習編程,那麼「爬蟲」絕對是你不可忽視的。那麼,學習python爬蟲之前需要哪些準備?一顆熱愛學習,不屈不撓的心一臺有鍵盤的電腦(什麼系統都行。我用的os x,所以例子會以這個為準)html相關的一些知識。
  • Python,爬蟲開發的不二選擇
    如果我們把網際網路比作一張大的蜘蛛網,數據便是存放於蜘蛛網的各個節點,而爬蟲就是一隻小蜘蛛,沿著網絡抓取自己的獵物(數據)。爬蟲指的是:向網站發起請求,獲取資源後分析並提取有用數據的程序。如今,人類社會已經進入了大數據時代,如何高效的獲取數據,已經成了各個網際網路公司的技術研發重點,掌握爬蟲技術已經成為了大數據公司技術人員不可或缺的一項技能。
  • 人生苦短,我用Python,那麼問題來了,普通人要學python嗎?
    話說在金融和IT行當混跡了多年,python一直是被我隨手拿來當個小工具用用,有時候偷懶用python弄個excel自動化整理工具,有時候拿來上各種網站爬蟲搜集點信息,有時候也會拿來寫點量化小工具。那麼到底什麼是python?
  • Python爬蟲從入門到精通只需要三個月
    如何入門Python,為了能夠幫助大家更輕鬆的學好Python開發,Python爬數據,Python數據分析等相關理論知識,給大家共同分享自己一套Python學習生活資料,文章最後面的有附屬的相關資料,無論你是大牛還是小白,是想轉行還是想入行都可以來了解,一起不斷進步以及一起努力學習
  • python爬蟲-urllib、urllib2、requests三者關係
    只要人能看到的東西,理論上都是爬蟲可以獲取的。不論靜態頁面還是動態頁面。也不論pc端的頁面還是移動端的app。話有點大,但這就是本系列的目的。爬蟲編程,有很多語言可選,python、php、go、java···甚至是c。這裡我們選擇python作為爬蟲的程式語言,因為它簡單易上手,並且節約生命。
  • Python視頻教程網課編程零基礎入門數據分析網絡爬蟲全套Python...
    scrapy框架及案例 21數據分析 22機器學習 23深度學習 24數據結構和算法 25python網絡爬蟲 26機器學習入門篇 27機器學習入門篇2 28機器學習提升篇 29數據挖掘篇 30深度學習必備原理與實戰 31深度學習必備原理與實戰2
  • 「Python爬蟲與文本實例技術與應用」培訓班通知
    通過爬蟲獲取的海量信息,我們可以對其進行進一步的分析:市場預測、文本分析、機器學習方法等。     Python作為一門腳本語言,它靈活、易用、易學、適用場景多,實現程序快捷便利,早已經成為程式設計師們的一門編程利器。Python這門程式語言包羅萬象,可以說掌握了python,除了一些特殊環境和高度的性能要求,你可以用它做任何事。
  • 雲立方網科普:常用高效的Python爬蟲框架有哪些?
    Python是現在非常流行的程式語言,而爬蟲則是Python語言中最典型的應用,下面是總結的高效Python爬蟲框架,大家看看是否都用過呢。 Pyspider 是一個用python實現的功能強大的網絡爬蟲系統,能在瀏覽器界面上進行腳本的編寫,功能的調度和爬取結果的實時查看,後端使用常用的資料庫進行爬取結果的存儲,還能定時設置任務與任務優先級等。
  • 簡單講解價值1K的Python爬蟲外包案例
    對於這個外包給予的網站信息,那麼我們就爬取選擇第一個吧獵聘網>,也就簡單實現,並不會進行打包處理,以及輸入關鍵字爬取,因為打包以及輸入關鍵詞爬取數據
  • 網絡爬蟲作用有哪些?如何構建網絡爬蟲?
    而網絡爬蟲則是數據採集的主要方法。下面具體為大家介紹網絡爬蟲作用有哪些?如何構建網絡爬蟲?什麼是網絡爬蟲?網絡爬蟲是一種網際網路機器人,它通過爬取網際網路上網站的內容來工作。它是用計算機語言編寫的程序或腳本,用於自動從Internet上獲取任何信息或數據。機器人掃描並抓取每個所需頁面上的某些信息,直到處理完所有能正常打開的頁面。
  • Python為什麼這麼火?小孩子適合學習python編程嗎?
    在Python裡分分鐘就可以寫個新對象,不喜歡的話甚至還能刪掉呢。程式語言兩個非常重要的概念,即面向對象與面向過程。舉個慄子,當你想吃火鍋了,你有兩個方式:1、自己出門去菜市場,講價,買粉絲,買肉,買火鍋底料,買各種肉丸子,買各種配菜,回家洗菜,起鍋,煮菜,吃完後洗碗,拖地,收拾廚房。2、打個電話叫一份海底撈的外賣,完事兒了。
  • Blender遊戲引擎的 Python 腳本
    您將學習如何在 Blender 中使用 Python 腳本用腳本調整車輛移動,加速,停車。請記住,汽車只是用作使用 Python 的示例。本教程將教您 Blender 遊戲引擎的 Python 腳本基礎知識,包括通過腳本訪問和更改邏輯信息。即使您對 Python 有所了解,本教程也很容易理解。
  • 電腦入門程式語言
    今天和大家介紹一下電腦入門編程學什麼語言更合適。首選python語言,python 是一門開源免費、通用型的腳本程式語言,現在社會上會python語言的人很吃香的。它上手簡單,功能強大,堅持「極簡主義」。
  • 《小灰教你零基礎學python》-Python入門語言
    程式語言有很多,咱們就學簡單強大的python即可。三、python程式語言介紹Python是荷蘭人吉多·范羅蘇姆(Guido van Rossum)在1989年聖誕節期間開發的一門解釋性的腳本語言,什麼是解釋性的語言,大家可以參照百度百科(
  • Python 爬蟲面試題 170 道
    58.with 語句的作用,寫一段代碼?59.python 字典和 json 字符串相互轉化方法60.請寫一個 Python 邏輯,計算一個文件中的大寫字母數量61. 請寫一段 Python連接 Mongo 資料庫,然後的查詢代碼。