小男孩‘自慰网亚洲一区二区,亚洲一级在线播放毛片,亚洲中文字幕av每天更新,黄aⅴ永久免费无码,91成人午夜在线精品,色网站免费在线观看,亚洲欧洲wwwww在线观看

分享

爬蟲入門教程 —— 1

 我本無我O 2020-11-03

爬蟲入門教程 -1

很想做一些爬蟲的基礎性的教程,來與大家共同分享我的一些小經(jīng)驗, 我將以我認為的方式為大家講解網(wǎng)絡爬蟲,如果你沒有編程基礎,對網(wǎng)絡爬蟲有興趣,開始可能稍微有一些小難度,不過我希望能給你帶來一些幫助。對我來說同樣也是相互學習。。

工具 : 1 大家需要在電腦上安裝Python3.x版本  我們以Python3 為例子講解。安裝方式百度一下按照步驟做就可以,安                            裝時候遇到的問題也可以百度的到,你遇到的這些問題小白都遇到過,特別的正常

            2 關于IDE(集成開發(fā)環(huán)境)的選擇 我建議大家使用pycham   至于什么是IDE。就是我們寫代碼的地方,它提供了  代碼高                   亮,代碼報錯,代碼的搜索等等非常方便的功能。

            3  我用的操作系統(tǒng)是liunx ,大家可以使用windows

            4  你可能用的是IE瀏覽器 ,看到這里我希望你能安裝chrome 或者火狐瀏覽器

本套教程主要用的編程語言是Python  

第一節(jié) 認識網(wǎng)絡爬蟲

本節(jié)我主要是帶領大家了解認識網(wǎng)絡爬蟲

什么是網(wǎng)絡爬蟲?

網(wǎng)絡爬蟲

除了百度百科所講,通俗來講,我平時瀏覽的頁面大都是HTML頁面,包括我們平時瀏覽的新聞,門戶網(wǎng)站等都是將文字內(nèi)容鑲嵌在HTML代碼中的,比如騰訊新聞的這篇文章:

html例子

爬蟲要做的可以簡單理解為利 用程序來獲取我們需要的網(wǎng)絡上的內(nèi)容,包括文字,視頻,圖片等信息 稱之為   數(shù)據(jù)。

你可能會說 真low 老子分分鐘復制粘貼好幾篇,辣雞---##---。您說的有道理但是,你想如果是10w篇呢,甚至100w呢,你還分分鐘復制粘貼嗎,程序可以做到將這寫數(shù)據(jù)下載下來或者是保存到數(shù)據(jù)庫中這些--------- 

為什么要做網(wǎng)絡爬蟲?

數(shù)據(jù)  你感覺重要不重要?  '大數(shù)據(jù)時代',獲取數(shù)據(jù)方式有哪些? 

企業(yè)產(chǎn)生的數(shù)據(jù)百度搜索指數(shù)、騰訊公司業(yè)績數(shù)據(jù)阿里巴巴集團財務及運營數(shù)據(jù)、新浪微博微指數(shù)等...

數(shù)據(jù)平臺購買數(shù)據(jù)數(shù)據(jù)堂國云數(shù)據(jù)市場、貴陽大數(shù)據(jù)交易所 等等

爬取網(wǎng)絡數(shù)據(jù)如果數(shù)據(jù)市場上沒有需要的數(shù)據(jù),或者價格太高不愿意購買,那么可以利用爬蟲技術,抓取網(wǎng)站上的數(shù)據(jù)。

我們對于爬蟲其實我們經(jīng)常與它打交道,百度 谷歌,雅虎,等就是大爬蟲, 他們有個響當當?shù)拿?-----搜索引擎

搜索引擎可以說是爬蟲的至高境界---  你修煉到這個境界今年是不可能了,當然明年也不肯可能。

你可能要問了,那百度為什么搜索的時候搜不到數(shù)據(jù),都是官網(wǎng),打開才可以進去,像搜索引擎不會像個人寫的爬蟲程序一樣無腦,因為他們要遵循一個 協(xié)議: 如標注為nofollow的鏈接,或者是Robots協(xié)議。

這些協(xié)議注明了那些頁面是爬蟲可以訪問的,哪些是不可以訪問的。如:

淘寶網(wǎng):https://www.taobao.com/robots.txt

騰訊網(wǎng): http://www.qq.com/robots.txt

搜索引擎通過爬蟲爬取到的網(wǎng)頁,將數(shù)據(jù)存入原始頁面數(shù)據(jù)庫。其中的頁面數(shù)據(jù)與用戶瀏覽器得到的HTML是完全一樣的。

搜索引擎蜘蛛在抓取頁面時,也做一定的重復內(nèi)容檢測,一旦遇到訪問權重很低的網(wǎng)站上有大量抄襲、采集或者復制的內(nèi)容,很可能就不再爬行。

別激動 我們做的是小爬蟲,也稱聚焦爬蟲,即你想爬哪些數(shù)據(jù),找到網(wǎng)址,分析規(guī)則然后寫程序取抓取數(shù)據(jù),當然不同網(wǎng)站的難易程度是不一樣的。

首先你要知道 當你點擊一下百度,發(fā)生了什么,能把你想要的數(shù)據(jù)返回到你的電腦屏幕上

簡單來說這段過程發(fā)生了以下四個步驟:

  1. 瀏覽器通過 DNS服務器 查找域名對應的 IP地址;

  2. 向 IP地址 對應的 Web服務器 發(fā)送請求;

  3. Web服務器 響應請求,發(fā)回 HTML頁面;

  4. 瀏覽器解析 HTML內(nèi)容,并顯示出來。

HTTP和HTTPS

HTTP協(xié)議(HyperText Transfer Protocol,超文本傳輸協(xié)議):是一種發(fā)布和接收 HTML頁面的方法。

HTTPS(Hypertext Transfer Protocol over Secure Socket Layer)簡單講是HTTP的安全版,在HTTP下加入SSL層。

SSL(Secure Sockets Layer 安全套接層)主要用于Web的安全傳輸協(xié)議,在傳輸層對網(wǎng)絡連接進行加密,保障在Internet上數(shù)據(jù)傳輸?shù)陌踩?/p>

  • HTTP的端口號為80
  • HTTPS的端口號為443

HTTP工作原理

網(wǎng)絡爬蟲抓取過程可以理解為模擬瀏覽器操作的過程。

瀏覽器的主要功能是向服務器發(fā)出請求,在瀏覽器窗口中展示您選擇的網(wǎng)絡資源,HTTP是一套計算機通過網(wǎng)絡進行通信的規(guī)則

瀏覽器發(fā)送HTTP請求的過程:

  1. 當用戶在瀏覽器的地址欄中輸入一個URL地址并按回車鍵之后,瀏覽器會向HTTP服務器發(fā)送HTTP請求。  HTTP請求主要分為 Get 和 Post 兩種方法。

  2. 當我們在瀏覽器輸入URL http://www.baidu.com 的時候,瀏覽器發(fā)送一個Request請求去獲取 http://www.baidu.com 的html文件,服務器把Response文件對象發(fā)送回給瀏覽器。

  3. 瀏覽器分析Response中的 HTML,發(fā)現(xiàn)其中引用了很多其他文件,比如Images文件,CSS文件,JS文件。 瀏覽器會自動再次發(fā)送Request去獲取圖片,CSS文件,或者JS文件等。

  4. 當所有的文件都下載成功后,網(wǎng)頁會根據(jù)HTML語法結(jié)構(gòu),完整的顯示出來了。

        URL(Uniform / Universal Resource Locator的縮寫):統(tǒng)一資源定位符,是用于完整地描述Internet上

HTTP請求主要分為GetPost兩類:

  • GET是從服務器上獲取指定頁面信息,POST是向服務器提交數(shù)據(jù)并獲取頁面信息。

  • GET請求參數(shù)都顯示在URL上,服務器根據(jù)該請求所包含URL中的參數(shù)來產(chǎn)生響應內(nèi)容。 'Get' 請求的參數(shù) 是URL的一部分。

  • POST請求參數(shù)在請求體當中,消息長度沒有限制而且以隱式的方式進行發(fā)送,通常用來向HTTP服務器提交量比較大的數(shù)據(jù)(比如請求中包含許多參數(shù)或者文件上傳操作等)。 'POST'請求的參數(shù) 不在URL中,而在請求體中。

get請求的參數(shù)都在網(wǎng)址里面包含,所以我們有時候看到一個網(wǎng)址特別長,后邊帶了一坨東西。post請求一般是用于表單提交,將賬號密碼以post的方式發(fā)送。

當你任意點開客戶端與服務期的一次信息交互,你會看到它訪問客戶端攜帶的參數(shù)也就是頭部信息:request headers (常用) 以及客戶端的回應response headers

前邊說過了,我們鼠標每點擊一次,就是對服務器發(fā)送了一次請求,等待服務器給你響應

當我們打開一個網(wǎng)頁,右鍵點擊選擇查看源代碼是可以查看源代碼的,點擊審查元素 和檢查元素,就可以對客戶端與服務器之間的信息交流進行查看如圖:

第一個箭頭指向的位置  —點擊一下,然后點擊文章相應位置,它會指向代碼中內(nèi)容的位置,可以幫助我們查看數(shù)據(jù)在網(wǎng)頁中的結(jié)構(gòu)和位置

第二給箭頭是網(wǎng)絡  — 點擊network ,重新刷新頁面,你會看到客戶端和服務器之間的數(shù)據(jù)來往,也是我們今后用的最多的

第三個箭頭 是   —all是所有的數(shù)據(jù)來往,xhr一般ajax加載的數(shù)據(jù)會在這里面找到,js是js的一些請求,里面也有我們要的數(shù)據(jù),少數(shù)

下邊方框里面  分別是 name  status(狀態(tài)碼)  type  size  等     了解一下即可,狀態(tài)  200是正常,其他異常狀態(tài)碼可以百度,size點擊可以按大小排列 這個后邊還是挺方便的

其他的我們后邊在做詳細的講解,大家可以先找個網(wǎng)頁嘗試一下。(其中有不明白的 可以自行百度)

第一節(jié)課程到這里也就結(jié)束了 ,今天先帶大家認識爬蟲,做一個簡單的了解,明天開始我們開始下一章了,對于Python基礎不了解的同學,可以看廖雪峰老師的講解   百度 廖雪峰Python

在這套教程中我們將逐步共同學習:

1. Python基礎語法學習(基礎知識)    #  這個我們暫時不講

2. 對HTML頁面的內(nèi)容抓?。–rawl)

3. 對HTML頁面的數(shù)據(jù)解析(Parse)

4. 動態(tài)HTML的處理/驗證碼的處理 

5. Scrapy框架

    本站是提供個人知識管理的網(wǎng)絡存儲空間,所有內(nèi)容均由用戶發(fā)布,不代表本站觀點。請注意甄別內(nèi)容中的聯(lián)系方式、誘導購買等信息,謹防詐騙。如發(fā)現(xiàn)有害或侵權內(nèi)容,請點擊一鍵舉報。
    轉(zhuǎn)藏 分享 獻花(0

    0條評論

    發(fā)表

    請遵守用戶 評論公約

    類似文章 更多