PHP爬蟲 -- 008 爬蟲初探

什麼是爬蟲?

  • 從本質上來講,就是利用程序在網上拿到對咱們有價值的數據
  • 爬蟲能作不少事,能作商業分析,也能作生活助手,
  • 好比:分析北京近兩年二手房成交均價是多少?
  • 深圳的Python工程師平均薪資是多少?
  • 北京哪家餐廳粵菜最好吃?等等。
  • 這是我的利用爬蟲所作到的事情,而公司,一樣能夠利用爬蟲來實現巨大的商業價值。
  • 好比你所熟悉的搜索引擎——百度和谷歌,它們的核心技術之一也是爬蟲,並且是超級爬蟲。

1559082538356

1559082607322

  • 百度這家公司會源源不斷地把千千萬萬個網站爬取下來,存儲在本身的服務器上。
  • 你在百度搜索的本質就是在它的服務器上搜索信息,
  • 你搜索到的結果是一些超連接,在超連接跳轉以後你就能夠訪問其它網站了

瀏覽器工做原理

1559082753633

1559082768483

1559082795780

  • 當服務器把數據響應給瀏覽器以後,瀏覽器並不會直接把數據丟給你。
  • 由於這些數據是用計算機的語言寫的,瀏覽器還要把這些數據翻譯成你能看得懂的樣子,
  • 這是瀏覽器作的另外一項工做【解析數據】。

爬蟲的工做原理

1559082874334

1559082914086

1559082935388

狀態碼

  • 不是每一次請求就必定能成功, 咱們須要判斷請求的結果

1559083486518

1559083688701

  • 301—永久移動。被請求的資源已被永久移動位置;
  • 302—請求的資源如今臨時從不一樣的 URI 響應請求;
  • 305—使用代理。被請求的資源必須經過指定的代理才能被訪問;
  • 307—臨時跳轉。被請求的資源在臨時從不一樣的URL響應請求;
  • 400—錯誤請求;
  • 402—須要付款。該狀態碼是爲了未來可能的需求而預留的,用於一些數字貨幣或者是微支付;
  • 403—禁止訪問。服務器已經理解請求,可是拒絕執行它;
  • 404—找不到對象。請求失敗,資源不存在;
  • 406—不可接受的。請求的資源的內容特性沒法知足請求頭中的條件,於是沒法生成響應實體;

1559083708684

  • 408—請求超時;
  • 409—衝突。因爲和被請求的資源的當前狀態之間存在衝突,請求沒法完成;
  • 410—遺失的。被請求的資源在服務器上已經再也不可用,並且沒有任何已知的轉發地址;
  • 413—響應實體太大。服務器拒絕處理當前請求,請求超過服務器所能處理和容許的最大值。
  • 417—指望失敗。在請求頭 Expect 中指定的預期內容沒法被服務器知足;
  • 418—我是一個茶壺。超文本咖啡罐控制協議,可是並無被實際的HTTP服務器實現;
  • 420—方法失效。
  • 422—不可處理的實體。請求格式正確,可是因爲含有語義錯誤,沒法響應;
  • 500—服務器內部錯誤。服務器遇到了一個不曾預料的情況,致使了它沒法完成對請求的處理;

下一節

相關文章
相關標籤/搜索