真实的国产乱ⅩXXX66竹夫人,五月香六月婷婷激情综合,亚洲日本VA一区二区三区,亚洲精品一区二区三区麻豆

成都創(chuàng)新互聯(lián)網(wǎng)站制作重慶分公司

Python爬蟲需要掌握哪些知識-創(chuàng)新互聯(lián)

創(chuàng)新互聯(lián)www.cdcxhl.cn八線動態(tài)BGP香港云服務器提供商,新人活動買多久送多久,劃算不套路!

成都創(chuàng)新互聯(lián)專注于舞鋼企業(yè)網(wǎng)站建設,成都響應式網(wǎng)站建設公司,商城網(wǎng)站定制開發(fā)。舞鋼網(wǎng)站建設公司,為舞鋼等地區(qū)提供建站服務。全流程按需策劃,專業(yè)設計,全程項目跟蹤,成都創(chuàng)新互聯(lián)專業(yè)和態(tài)度為您提供的服務

這篇文章將為大家詳細講解有關Python爬蟲需要掌握哪些知識,小編覺得挺實用的,因此分享給大家做個參考,希望大家閱讀完這篇文章后可以有所收獲。

什么是 “爬蟲”?

簡單來說,寫一個從 web 上獲取需要數(shù)據(jù)并按規(guī)定格式存儲的程序就叫爬蟲;

爬蟲理論上步驟很簡單,第一步獲取 html 源碼,第二步分析 html 并拿到數(shù)據(jù)。但實際操作,老麻煩了~

用 Python 寫 “爬蟲” 有哪些方便的庫

常用網(wǎng)絡請求庫:requests、urllib、urllib2、

urllib 和 urllib2 是 Python 自帶模塊,requests 是第三方庫

常用解析庫和爬蟲框架:

BeautifulSoup、lxml、HTMLParser、selenium、Scrapy

HTMLParser 是 Python 自帶模塊;

BeautifulSoup 可以將 html 解析成 Python 語法對象,直接操作對象會非常方便;

lxml 可以解析 xml 和 html 標簽語言,優(yōu)點是速度快;

selenium 調(diào)用瀏覽器的 driver,通過這個庫你可以直接調(diào)用瀏覽器完成某些操作,比如輸入驗證碼;

Scrapy 很強大且有名的爬蟲框架,可以輕松滿足簡單網(wǎng)站的爬取;

爬蟲 需要掌握哪些知識

1)超文本傳輸協(xié)議 HTTP:HTTP 協(xié)議定義了瀏覽器怎樣向萬維網(wǎng)服務器請求萬維網(wǎng)文檔,以及服務器怎樣把文檔傳送給瀏覽器。常用的 HTTP 方法有 GET、POST、PUT、DELETE。

2)統(tǒng)一資源定位符 URL: URL 是用來表示從因特網(wǎng)上得到的資源位置和訪問這些資源的方法。URL 給資源的位置提供一種抽象的識別方法,并用這種方法給資源定位。只要能夠?qū)Y源定位,系統(tǒng)就可以對資源進行各種操作,如存取、更新、替換和查找其屬性。URL 相當于一個文件名在網(wǎng)絡范圍的擴展。

3)超文本標記語言 HTTP:HTML 指的是超文本標記語言,是使用標記標簽來描述網(wǎng)頁的。HTML 文檔包含 HTML 標簽和純文本,也稱為網(wǎng)頁。Web 瀏覽器的作用是讀取 HTML 文檔,并以網(wǎng)頁的形式顯示出它們。瀏覽器不會顯示 HTML 標簽,而是使用標簽來解釋頁面的內(nèi)容。簡而言之就是你要懂點前端語言,這樣描述更直觀貼切。

4)瀏覽器調(diào)試功能:學爬蟲就是抓包,對請求和響應進行分析,用代碼來模擬

進階爬蟲

熟練了基本爬蟲之后,你會想著獲取更多的數(shù)據(jù),抓取更難的網(wǎng)站,然后你就會發(fā)現(xiàn)獲取數(shù)據(jù)并不簡單,而且現(xiàn)在反爬機制也非常的多。

a. 爬取知乎、簡書,需要登錄并將下次的請求時將 sessions 帶上,保持登錄姿態(tài);

b. 爬取亞馬遜、京東、天貓等商品信息,由于信息量大、反爬機制完善,需要分布式【這里就難了】爬取,以及不斷切換 USER_AGENT 和代理 IP;

c. 滑動或下拉加載和同一 url 加載不同數(shù)據(jù)時,涉及 ajax 的異步加載。這里可以有簡單的返回 html 代碼、或者 json 數(shù)據(jù),也可能有更變態(tài)的返回 js 代碼然后用瀏覽器執(zhí)行,邏輯上挺簡單、但是寫代碼那叫一個苦哇;

d. 還有點是需要面對的,驗證碼識別。這個有專門解析驗證碼的平臺..... 不屬于爬蟲范疇了,自己處理需要更多的數(shù)據(jù)分析知識。

e. 數(shù)據(jù)儲存,關系數(shù)據(jù)庫和非關系數(shù)據(jù)庫的選擇和使用,設計防冗余數(shù)據(jù)庫表格,去重。大量數(shù)據(jù)存儲數(shù)據(jù)庫,會變得很頭疼,

f. 編碼解碼問題,數(shù)據(jù)的存儲涉及一個格式的問題,python2 或者 3 也都會涉及編碼問題。另外網(wǎng)頁結構的不規(guī)范性,編碼格式的不同很容易觸發(fā)編碼異常問題。下圖一個簡單的轉(zhuǎn)碼規(guī)則

一些常見的限制方式

a.Basic Auth:一般會有用戶授權的限制,會在 headers 的 Autheration 字段里要求加入;

b.Referer:通常是在訪問鏈接時,必須要帶上 Referer 字段,服務器會進行驗證,例如抓取京東的評論;

c.User-Agent:會要求真是的設備,如果不加會用編程語言包里自有 User-Agent,可以被辨別出來;

d.Cookie:一般在用戶登錄或者某些操作后,服務端會在返回包中包含 Cookie 信息要求瀏覽器設置 Cookie,沒有 Cookie 會很容易被辨別出來是偽造請求;也有本地通過 JS,根據(jù)服務端返回的某個信息進行處理生成的加密信息,設置在 Cookie 里面;

e.Gzip:請求 headers 里面帶了 gzip,返回有時候會是 gzip 壓縮,需要解壓;

f.JavaScript 加密操作:一般都是在請求的數(shù)據(jù)包內(nèi)容里面會包含一些被 javascript 進行加密限制的信息,例如新浪微博會進行 SHA1 和 RSA 加密,之前是兩次 SHA1 加密,然后發(fā)送的密碼和用戶名都會被加密;

g. 網(wǎng)站自定義其他字段:因為 http 的 headers 可以自定義地段,所以第三方可能會加入了一些自定義的字段名稱或者字段值,這也是需要注意的。

真實的請求過程中,其實不止上面某一種限制,可能是幾種限制組合在一次,比如如果是類似 RSA 加密的話,可能先請求服務器得到 Cookie,然后再帶著 Cookie 去請求服務器拿到公鑰,然后再用 js 進行加密,再發(fā)送數(shù)據(jù)到服務器。所以弄清楚這其中的原理,并且耐心分析很重要。

爬蟲入門不難,但是需要知識面更廣和更多的耐心 

一句話概括爬蟲 —— 爬蟲本質(zhì)就是 cosplay,將爬蟲模擬成各種【USER_AGENT】瀏覽器,甚至還模擬成別人【ip 代理】的瀏覽器。

關于Python爬蟲需要掌握哪些知識就分享到這里了,希望以上內(nèi)容可以對大家有一定的幫助,可以學到更多知識。如果覺得文章不錯,可以把它分享出去讓更多的人看到。


網(wǎng)頁名稱:Python爬蟲需要掌握哪些知識-創(chuàng)新互聯(lián)
文章位置:http://weahome.cn/article/dhecde.html

其他資訊

在線咨詢

微信咨詢

電話咨詢

028-86922220(工作日)

18980820575(7×24)

提交需求

返回頂部