Spyder 基本知識(一)

 一直想學Spyder,苦於沒有方向。經高人指點,總算開始了爬蟲的學習。本文權當一個總結,若有不當請多指正,歡迎拍磚。

首先,寫初級的爬蟲程序離不開“Requests”庫,import後正式開始。

 

一、Reuqests庫的常用函數:

import Requests

requests.request()      構造一個請求,支撐一下各方法的基礎方法

requests.get()          獲取HTML頁面的主要方法,對應HTTP的GET

requests.head()         獲取HTML網頁頭信息的方法,對應於HTTP的HEAD

requests.post()         向HTML提交POST請求,    。。。。。POST

requests.put()          。。。。。PUT。。 ,  。。。。。PUT

requests.patch()        向HTML網頁提交局部修改請求,對應PATCH

requests.delete()       。。。。。。。刪除。。。。。,。。DELETE  

                

二、Response對象

調用了上述方法後,均能讓服務器響應,並返回一個Response對象。其主要屬性值如下:

r. status_ code                HTTP請求的返回狀態, 200表示連接成功, 404表示失敗

r.text                         HTTP響應內容的字符串形式,即, ur1對應的頁面內容

r . encoding                   從HTTP header中猜測的響應內容編碼方式

r . apparent_ encoding         從內容中分析出的響應內容編碼方式(備選編碼方式)

r. content                     HTTP響應內容的二進制形式 

 

三、請求方式及其參數設置

(1)請求方式

import Requests
requests.get(url,params,**kwargs)

#url:爬取網頁的鏈接
#params:url中的額外參數,用來生成鏈接
#**kwargs:訪問控制參數,一共12個

這個代碼就是爬蟲獲取網頁的基本格式。

 

(2)params

關於params,舉一個例子來說明:

能看到變化的是?wd的值,而這個值可以通過params傳給url來進行處理。

借用"http://httpbin.org" 能夠檢查URL的各個參數,下面我們借用這個網站來觀察params的設置

import requests
res=requests.get("http://httpbin.org/get?name=python&age=20") #給出參數 ?name=python&age=20
print(res.status_code)
print(res.encoding)
print(res.apparent_encoding)
res.encoding=res.apparent_encoding
print(res.text)

能看到參數被直接傳進去了,下面我們用header參數來保存所有參數的值,再賦給params,看看會不會得到相同的結果

import requests
headers={'name':'python',
        'age' :20
        }
res=requests.get("http://httpbin.org/get",headers)   #headers填到params的地方
print(res.status_code)
print(res.encoding)
print(res.apparent_encoding)
res.encoding=res.apparent_encoding
print(res.text)

運行結果如下:

能看到,是一樣的。

(3)關於**kwargs

 有時候有些網站並不允許python的爬蟲對其網頁進行瀏覽,只允許一些瀏覽器進入。此時如果只是按照一般的方法則無法爬取數據,而如果我們能將自己的spider進行僞裝,就可以進入了。這就是**kwargs的作用

下面我們將自己的爬蟲裝做火狐瀏覽器來進入百度的網頁。:

import requests
header={'user-agent':'Mozilla/5.0'}
res=requests.get("https://www.baidu.com/explore",headers=header)   #headers填到被賦值爲header
print(res.status_code)  #打印連接狀態碼,200連通,404未連通


res=requests.get("http://httpbin.org/get",headers=header)
res.encoding=res.apparent_encoding
print(res.text)

要注意的是,kwargs必須和原來的參數值完全相同纔可以改變參數(血的教訓,試了很久都沒試出來,最後才發現headers少打了個s)

 

上述就是Spider入門需要掌握的基本知識之一,後續會陸續寫完。歡迎拍磚。

發表評論
所有評論
還沒有人評論,想成為第一個評論的人麼? 請在上方評論欄輸入並且點擊發布.
相關文章