日韩性视频-久久久蜜桃-www中文字幕-在线中文字幕av-亚洲欧美一区二区三区四区-撸久久-香蕉视频一区-久久无码精品丰满人妻-国产高潮av-激情福利社-日韩av网址大全-国产精品久久999-日本五十路在线-性欧美在线-久久99精品波多结衣一区-男女午夜免费视频-黑人极品ⅴideos精品欧美棵-人人妻人人澡人人爽精品欧美一区-日韩一区在线看-欧美a级在线免费观看

歡迎訪問 生活随笔!

生活随笔

當前位置: 首頁 > 编程语言 > python >内容正文

python

python爬虫知识_Python 爬虫技术分享

發布時間:2025/3/20 python 29 豆豆
生活随笔 收集整理的這篇文章主要介紹了 python爬虫知识_Python 爬虫技术分享 小編覺得挺不錯的,現在分享給大家,幫大家做個參考.

什么是“爬蟲”?www.xihefangpei.com

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

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

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

常用網絡請求庫:requests、urllib、urllib2、

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

常用解析庫和爬蟲框架:BeautifulSoup、lxml、HTMLParser、selenium、Scrapy

HTMLParser是Python自帶模塊;

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

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

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

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

\

“爬蟲”需要掌握哪些知識

\

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

【插曲:某站長做了一個網站,奇葩的他把刪除的操作綁定在GET請求上。百度或者谷歌爬蟲爬取網站鏈接,都是用的GET請求,而且一般用瀏覽器訪問網頁都是GET請求。在谷歌爬蟲爬取他網站的信息時,該網站自動刪除了數據庫的全部數據】

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

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

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

\

**進階爬蟲**

\

熟練了基本爬蟲之后,你會想著獲取更多的數據,抓取更難的網站,然后你就會發現獲取數據并不簡單,而且現在反爬機制也非常的多。

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

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

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

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

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

f.編碼解碼問題,數據的存儲涉及一個格式的問題,python2或者3也都會涉及編碼問題。另外網頁結構的不規范性,編碼格式的不同很容易觸發編碼異常問題。下圖一個簡單的轉碼規則

\

****一些常見的限制方式****

\

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

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

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

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

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

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

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

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

\

**總結**

\

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

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

\

本作品采用《CC 協議》,轉載必須注明作者和本文鏈接

總結

以上是生活随笔為你收集整理的python爬虫知识_Python 爬虫技术分享的全部內容,希望文章能夠幫你解決所遇到的問題。

如果覺得生活随笔網站內容還不錯,歡迎將生活随笔推薦給好友。