什麼是Python網絡爬蟲?看這篇清晰多了!

2021-02-25 大數據分析和人工智慧

什麼是爬蟲?

網絡爬蟲(Web crawler),就是通過網址獲得網絡中的數據、然後根據目標解析數據、存儲目標信息。這個過程可以自動化程序實現,行為類似一個蜘蛛。蜘蛛在網際網路上爬行,一個一個網頁就是蜘蛛網。這樣蜘蛛可以通過一個網頁爬行到另外一個網頁。

網絡爬蟲也是獲取數據的一個途徑。對於大數據行業,數據的價值不言而喻,在這個信息爆炸的年代,網際網路上有太多的信息數據,對於中小微公司,合理利用爬蟲爬取有價值的數據,是彌補自身先天數據短板的不二選擇。

根據上面的分析,我們可以把網絡爬蟲分為四步:

獲取網頁數據

解析網頁數據

存儲網頁數據

分析網頁數據

第一步: 獲取網頁數據

獲取網頁數據,也就是通過網址( URL:Uniform Resource Locator,統一資源 定位符),獲得網絡的數據,充當搜尋引擎。當輸入網址,我們就相當於對網址伺服器發送了一個請求,網站伺服器收到以後,進行處理和解析,進而給我們一個相應的相應。如果網絡正確並且網址不錯,一般都可以得到網頁信息,否則告訴我們一個錯誤代碼,比如404. 整個過程可以稱為請求和響應。

常見的請求方法有兩種,GET和 POST。GET請求是把參數包含在了url裡面,比如在百度裡面輸入爬蟲,得到一個get 請求,連結為 https://www.baidu.com/s?wd=爬蟲。而post請求大多是在表單裡面進行,也就是讓你輸入用戶名和秘密,在url裡面沒有體現出來,這樣更加安全。post請求的大小沒有限制,而get請求有限制,最多1024個字節。

在python程序裡面,上述過程可以通過獲取網頁中的原始碼實現,進而獲得網頁中的數據。首先看一下網址的原始碼查看方法,使用google瀏覽器,右鍵選擇檢查,查看需要爬取的網址原始碼,具體如下:從圖可得知,在Network選項卡裡面,點擊第一個條目,也就是www.baidu.com,看到原始碼。

在本圖中,第一部分是General,包括了網址的基本信息,比如狀態 200等,第二部分是Response Headers,包括了請求的應答信息,還有body部分,比如Set-Cookie,Server等。第三部分是,Request headers,包含了伺服器使用的附加信息,比如Cookie,User-Agent等內容。

上面的網頁原始碼,在python語言中,我們只需要使用urllib、requests等庫實現即可,具體如下。這裡特別說明一些,requests比urllib更加方便、快捷。一旦學會requests庫,肯定會愛不釋手。

import urllib.request
import socket
from urllib import error

try:
response = urllib.request.urlopen('https://www.python.org')

print(response.status)
print(response.read().decode('utf-8'))

except error.HTTPError as e:
print(e.reason,e.code,e.headers,sep='\n')
except error.URLError as e:
print(e.reason)
else:
print('Request Successfully')

第二步:解析網頁數據

在第一步,我們獲得了網頁的原始碼,也就是數據。然後就是解析裡面的數據,為我們的分析使用。常見的方法有很多,比如正則表達式、xpath解析等。

在Python語言中,我們經常使用Beautiful Soup、pyquery、lxml等庫,可以高效的從中獲取網頁信息,如節點的屬性、文本值等。

Beautiful Soup庫是解析、遍歷、維護「標籤樹」的功能庫,對應一個HTML/XML文檔的全部內容。安裝方法非常簡單,如下:

#安裝方法
pips install beautifulsoup4

#驗證方法
from bs4 import BeautifulSoup

第三步:存儲網頁數據

解析完數據以後,就可以保存起來。如果不是很多,可以考慮保存在txt 文本、csv文本或者json文本等,如果爬取的數據條數較多,我們可以考慮將其存儲到資料庫中。因此,我們需要學會 MySql、MongoDB、SqlLite的用法。更加深入的,可以學習資料庫的查詢優化。

JSON(JavaScript Object Notation) 是一種輕量級的數據交換格式。它基於ECMAScript的一個子集。 JSON採用完全獨立於語言的文本格式,但是也使用了類似於C語言家族的習慣(包括C、C++、Java、JavaScript、Perl、Python等)。這些特性使JSON成為理想的數據交換語言。易於人閱讀和編寫,同時也易於機器解析和生成(一般用於提升網絡傳輸速率)。

JSON在python中分別由list和dict組成。Python官方json網址是  https://docs.python.org/3/library/json.html?highlight=json#module-json

具體使用方法如下:

with open('douban_movie_250.csv','a',encoding='utf-8') as f:
f.write(json.dumps(content,ensure_ascii=False)+'\n')

第四步:分析網頁數據

  爬蟲的目的是分析網頁數據,進的得到我們想要的結論。在 python數據分析中,我們可以使用使用第三步保存的數據直接分析,主要使用的庫如下:NumPy、Pandas、 Matplotlib 三個庫。

NumPy :它是高性能科學計算和數據分析的基礎包。

Pandas : 基於 NumPy 的一種工具,該工具是為了解決數據分析任務而創建的。它可以算得上作弊工具。

Matplotlib:Python中最著名的繪圖系統Python中最著名的繪圖系統。它可以製作出散點圖,折線圖,條形圖,直方圖,餅狀圖,箱形圖散點圖,折線圖,條形圖,直方圖,餅狀圖,箱形圖等。

掃描加入更多Python實戰

世界500強程式設計師帶你飛

已有1300+加入,與您共同學習。

【基礎】0基礎學python,24小時有人快速解答問題;

【提高】40多個項目實戰,有基礎的可以從真實場景中學習python;

【點評】圈主認真細緻作業點評,重量嘉賓幫助解答問題

【分享】優質python學習資料分享,讓你在最短時間獲得有價值的學習資源;圈友優質資料或學習分享,會不時給予讚賞支持,希望每個優質圈友既能賺回加入費用,也能快速成長,並享受分享與幫助他人的樂趣。

【人脈】已有1300+加入收穫一群志同道合的朋友並且都是python從業者

【價格】本著布道思想,只需 70元 加入一個能保證學習效果的良心圈子

長按下圖二維碼,了解python實戰圈詳情。

相關焦點

  • Python網絡爬蟲
    Python網絡爬蟲第一篇(一):為什麼要學習網絡爬蟲?大數據成為當今時代的熱門話題之一,在數據量爆發增長的網際網路時代,網站與用戶溝通實質為數據的交換。如果大量的數據得以分析,我們能夠對事件的看法,解決方案做出更好的決策。
  • 如何快速學會Python爬蟲(入門篇)
    Python爬蟲進階四之PySpider的用法第二(第一的姊妹篇):Python爬蟲入門教程Python版本:2.7教程目錄:[Python]網絡爬蟲(一):抓取網頁的含義和]網絡爬蟲(五):urllib2的使用細節與抓站技巧[Python]網絡爬蟲(六):一個簡單的百度貼吧的小爬蟲[Python]網絡爬蟲(七):Python中的正則表達式教程[Python]網絡爬蟲(八):糗事百科的網絡爬蟲(v0.3)源碼及解析(簡化更新)
  • Python爬蟲實戰 | 只需 「4步」 入門網絡爬蟲(有福利哦)
    什麼是爬蟲?網絡爬蟲(Web crawler),就是通過網址獲得網絡中的數據、然後根據目標解析數據、存儲目標信息。這個過程可以自動化程序實現,行為類似一個蜘蛛。蜘蛛在網際網路上爬行,一個一個網頁就是蜘蛛網。這樣蜘蛛可以通過一個網頁爬行到另外一個網頁。
  • 簡單講解價值1K的Python爬蟲外包案例
    這裡就不多說明了。 往期推薦 本篇文章就使用三種爬蟲模式爬取相關數據 1、常規爬取數據 2、多線程爬取數據 3、scrapy框架爬取數據 基本開發環境
  • Python實戰 | 只需 「4步」 入門網絡爬蟲
    網絡爬蟲(Web crawler),就是通過網址獲得網絡中的數據、然後根據目標解析數據、存儲目標信息。
  • 聊聊學python轉行、具體學習方法、自學python用於辦公、寫爬蟲等...
    那今天就來說說學python這件事兒吧,從三個方面來說:第一,學了python之後轉行找工作的問題;第二,具體的學習方法;第三,講講學了python之後應用於辦公自動化和寫爬蟲。4600字。關於恰飯:不用猜了,這篇依舊沒有廣告。
  • Python破解反爬蟲:最新反爬蟲有道翻譯中英文互譯破解,附代碼
    由於爬蟲的出現,導致很多網頁都設置了反爬蟲機制:常見的反爬蟲機制就是在客戶端發出請求的時候,在請求的內容中新增一些內容,而這些內容都是經過「加密的」,每次請求都是不同的,這樣就導致了很多傳統的爬蟲失效。
  • Python網絡爬蟲第七篇——數據存儲
    Python網絡爬蟲(第七篇)——數據存儲存儲在文件中,包括TXT文件和CSV文件存儲在MySQL資料庫中。MySQL的基本操作——命令行這是一個命令行的操作——MySQLWorkbench圖形化界面庫輸入root密碼後,可以命令行一樣操作資料庫,也可以通過單擊選項進行操作。此處輸入show databases; 後按Ctrl+Enter鍵後出結果。
  • 雲立方網科普:常用高效的Python爬蟲框架有哪些?
    Python是現在非常流行的程式語言,而爬蟲則是Python語言中最典型的應用,下面是總結的高效Python爬蟲框架,大家看看是否都用過呢。
  • 開課吧:Python是什麼意思?為什麼有那麼多人學Python?
    python非常容易上手,而且能幹很多事情,WEB開發,機器學習人工智慧,數據分析,量化投資,爬蟲等,基本可以應用到各行各業,而且大家都在做基於PYTHON的庫,使得PYTHON語言變成一門直接拿來就能用的語言,更像一種工具了,比如機器學習,可能理論很複雜,但是實際在PYTHON中僅僅幾行代碼就能實現,不用花太多時間用在碼代碼上面,python 現在是越來越火
  • 推薦四個網絡爬蟲抓包神器
    目前市面上比較不錯的網絡爬蟲抓包工具有Fiddler、charles、Anyproxy和mitmproxy等。有人可能會問,何為網絡爬蟲?首先,網絡爬蟲它是一種程序,它的樣子如同一個大蜘蛛.它將網絡上全部的連結和內容進行查索,建立相關的資料庫並引入。往往較好的爬蟲將會決定搜尋引擎的質量。CharlesCharles是一款macOS上的一款抓包分析工具之一。當然他也支持windows和linux。
  • 使用Scrapy網絡爬蟲框架小試牛刀
    說人話就是只要是搞爬蟲的,用這個就van事了,因為裡面集成了一些很棒的工具,並且爬取性能很高,預留有很多鉤子方便擴展,實在是居家爬蟲的不二之選。_.pyspiders # 爬蟲目錄,一個個爬蟲文件,編寫數據解析代碼__init__.py呃,可能此時你並不能懂這麼些目錄什麼意思,不過不要慌,使用一下可能就懂了,別慌。
  • Python爬蟲推薦用什麼框架呢?
    實現爬蟲技術的編程環境有很多種,Java、Python、C++等都可以用來爬蟲,但最熱門的依然是Python,這是為什麼呢?因為Python有著非常豐富的第三方庫,確實很適合做爬蟲,簡單的幾行代碼便可實現你想要的功能,同時Python也是數據挖掘和分析的好能手。
  • 5分鐘快速學習掌握python爬蟲Beautifulsoup解析網頁
    python爬蟲用Beatifulsoup庫解析網頁提取所需元素新手看懂個人觀點:之前我們有講過爬蟲和網頁的一些聯繫,網頁的一些組成部分,爬蟲就是對網頁裡面的數據進行提取然後對其進行數據處理,篩選出所需部分,供需要者使用。
  • python爬蟲資源匯總 : 書單、網站博客、框架、工具、項目(附資源)
    既然書讀百遍奇異自現,那爬蟲百遍,相信你也能找到爬蟲的通用套路和技巧。基於搜狗微信搜索的微信公眾號爬蟲接口,可以擴展成基於搜狗搜索的爬蟲,返回結果是列表,每一項均是公眾號具體信息字典。網址:https://WechatSogou可以爬下豆瓣讀書標籤下的所有圖書,按評分排名依次存儲,存儲到Excel中。
  • 乾貨|為大家總結了12個Python網絡爬蟲實戰項目,喜歡記得收藏!
    今天我們就來做些Python網絡爬蟲實戰項目,包含微信公號、豆瓣、知乎等網站爬蟲,大家也要自己動手練練看呀。1WechatSogou - 微信(http://lib.csdn.net/base/wechat)公眾號爬蟲。
  • python戰反爬蟲:爬取貓眼電影數據 (二)
    CSDN博客:Suidaxia 微信名:世界上的霸主本文主要介紹破解反爬,可以先去上一篇觀看爬取無反爬內容python戰反爬蟲:爬取貓眼電影數據 (一)(https://blog.csdn.net/Sui_da_xia/article/details/105716242)前言:前一篇文章介紹了貓眼無反爬的內容,我就接著前一篇,接著為您爬取貓眼電影排行榜
  • 搜尋引擎技術之網絡爬蟲
    網絡爬蟲技術是什麼?其實網絡爬蟲技術就是指的網絡數據的抓取,因為在網絡中抓取數據是具有關聯性的抓取,它就像是一隻蜘蛛一樣在網際網路中爬來爬去,所以我們很形象地將其稱為是網絡爬蟲技術。其中網絡爬蟲也被稱為是網絡機器人或者是網絡追逐者。
  • python爬蟲 - 字符串
    python字符串Python中的字符串可以使用單引號、雙引號和三引號(三個單引號或三個雙引號,可以換行的)括起來,使用反斜槓 \ 轉義特殊字符Python3源碼文件默認以UTF-8編碼,所有字符串都是unicode字符串支持字符串拼接、截取等多種運算
  • 什麼是python爬蟲和代理IP?
    爬蟲的基本原理是基於網站網絡協議,根據網址批量獲取到網頁上的信息操作過程。簡單一點說就是用電腦程式來模擬人工點擊網頁獲取數據的過程。IP我們都不陌生,一臺電腦通常只有一個公網IP來確定電腦的位置。ip代理一般有以下幾種作用:1、突破自身IP訪問限制,訪問一些自己網絡無法訪問的網站等。2、訪問一些單位或團體內部資源,如某大學FTP(前提是該代理地址在該資源 的允許訪問範圍之內),使用教育網內地址段免費代理伺服器,就可以用於對教育網開放的各類FTP下載上傳,以及各類資料查詢共享等服務。