1. 程式人生 > >Python爬蟲基礎知識及前期準備

Python爬蟲基礎知識及前期準備

多多指教 arm 讀取 第一次 小項目 網信 替換 mark python爬蟲

學習爬蟲有一小段時間了,於是決定把自己學爬蟲時所學的,寫過的代碼以及看過的文檔記錄下來,權當小結。第一次寫這些,如果有錯誤,請多指教。

首先我們需要了解一下什麽是爬蟲。

根據百度百科上給出的定義,” 網絡爬蟲(又被稱為網頁蜘蛛,網絡機器人,在FOAF社區中間,更經常的稱為網頁追逐者),是一種按照一定的規則,自動地抓取萬維網信息的程序或者腳本。“簡單來說,爬蟲類似手動下載網頁信息,比如小說、歌曲。說到這,或許會有疑問,既然這樣,幹嘛還去敲代碼,直接人工處理不好嗎?話是這麽說,但如果下載的不是一篇兩篇小說,一首兩首歌曲呢,需要將整個網站的信息全部爬取下來,這個時候人工操作顯得有些力不從心了。

學習簡單的爬蟲應該做些什麽前期準備,我們來梳理一下:

  • 首先我們需要熟悉一門編程語言,在這裏我們以Python為例,我們需要簡單的了解其語法,掌握列表、字典等數據結構的用法,for循環,文件讀取存儲等操作,這些將是我們寫的爬蟲在獲取信息,處理信息,存儲信息需要用到的知識。不做一一介紹,基礎語法可參照菜鳥教程Python基礎教程
  • 熟悉網頁的基礎知識,不需要很精通,但需要有個了解。這裏只是簡單介紹,想了解更多可以查看我附在介紹後的文檔鏈接

URL:(Universal Resource Locator即統一資源定位符)URL是對能從Internet上得到資源的位置和訪問方法的一種簡潔的表示。URL給資源的位置提供一種抽象的識別方法,並用這種方法給資源定位,

使得系統得以對資源(指Internet上可以訪問的任何對象,包括文件目錄、文件、文檔、圖像等,以及其他任何形式的數據)進行各種操作,如存儲、更新、替換和查找其屬性。

URL的一般形式為:

<URL的訪問形式>://<主機>:<端口>/<路徑>

左邊的<URL的訪問形式>主要有文件傳送協議(FTP)、超文本傳送協議(HTTP)等方式,常見形式為HTTP,下面將會介紹到。<主機>一項是必須的,<端口>和<路徑>有時侯可省略。例如:http ://

HTTP:(HyperText Transfer Protocol 即超文本傳輸協議)HTTP是一個簡單的請求——響應協議,通常運行在TCP之上,它指定了客戶端可能發送給服務器的消息,以及得到的響應。我們可以簡單的了解其發包和收包的概念(GET/POST)詳情可以參考菜鳥教程HTTP教程


HTML:(HyperText Markup Lanhguage 即超文本標記語言)HTML是一種制作萬維網頁面的標準語言,它消除了計算機信息交流的障礙。HTML定義了許多用於排版的”標簽“,各種標簽嵌入到萬維網的頁面就構成了HTML文檔。我們所要爬取的頁面也基本是HTML網頁。所以對於HTML中的一些標簽需要有所了解,同時也可了解用來控制網頁樣式布局的CSS,方便以後的解析網頁。菜鳥教程HTML教程,菜鳥教程CSS教程

  • 掌握抓包分析工具

一種方法是通過谷歌或者火狐瀏覽器自帶的開發者工具,F12或者鼠標右鍵檢查,可以快速方便的定位網頁元素位置

另一種方法是通過抓包分析工具 Fiddler,我也不是很經常用,一般瀏覽器F12+F5搞定,關於Fiddler的用法可以百度。

  • 正則表達式

用來提取網頁信息的表達式,可能會覺得有些繁瑣,但學會一個通配模式後,就會覺得正則其實挺好用的。關於正則的教程,推薦大家看看這個:正則表達式30分鐘入門教程,另外用正則表達式的時候,如果直接通過代碼測試正則表達式的可行性,費時間且麻煩,給大家推薦個網站:正則表達式在線測試

  • 最後就是一些爬蟲所需的Python庫,大家可以直接在命令行通過pip安裝,用PyCharm的可以在Setting中安裝。

1.requests 用來請求網頁的模塊,與之相同作用的還有urllib,不過我更習慣requests requests中文文檔

2.BeautifulSoup 用來解析網頁的模塊,在小型爬蟲中具有強大作用,且簡單易學。配合requests使用便可輕松爬取並解析網頁。BeautifulSoup4.4.0文檔

看上去這些內容有點多,但這通過幾個小項目還是很好上手的。當然,爬蟲可不止這些簡單的內容,真正有難度的便在於針對各種反爬取措施所做的策略了,而這,也會在後續通過簡單實戰的方式向大家介紹,無論是文檔還是視頻,都只是我們了解爬蟲知識的前提,真正使我們掌握的,只有實戰,通過自己動手編寫代碼,相信大家能夠很快掌握爬蟲的基本使用方法。

好了,第一次就說這麽多了,希望大家多多指教,一起學習呀。

python學習交流群:125240963

轉載至:https://zhuanlan.zhihu.com/p/36432510

Python爬蟲基礎知識及前期準備