1、先爬乙個網頁下來看看吧
怎樣扒網頁呢?其實就是根據url來獲取它的網頁資訊,雖然我們在瀏覽器中看到的是優美有序的畫面,但是其實是由瀏覽器解釋才呈現出來的,實質它是一段html**,加js、css,下面我們就來扒乙個網頁下來看看。
# python 3
import urllib.request
response = urllib.request
.urlopen("")
print(response.read())
真正的程式就兩行,把它儲存成 demo.py,進入該檔案的目錄,執行python demo.py命令檢視執行結果吧。
2.分析扒網頁的方法
第一行response = urllib.request.urlopen("")
urlopen(url, data, timeout)
第二行
print(response.read())
response物件有乙個read方法,可以返回獲取到的網頁內容。
如果不加read直接列印會是什麼呢?答案如下:
0x02e05270>
直接列印出了該物件的描述,所以記得一定要加read方法,否則它不出來內容可就不怪我咯!
3.post和get資料傳送
上面的程式演示了最基本的網頁抓取,不過,現在大多數**都是動態網頁,需要你動態地傳遞引數給它,它做出對應的響應。所以,在訪問時,我們需要傳遞資料給它。最常見的情況就是登入註冊的時候呀。
把使用者名稱和密碼傳送到乙個url,然後你得到伺服器處理之後的響應,這個該怎麼辦?
資料傳送分為post和get兩種方式,兩種方式最重要的區別是get方式是直接以鏈結形式訪問,鏈結中包含了所有的引數,當然如果包含了密碼的話是一種不安全的選擇,不過你可以直觀地看到自己提交了什麼內容。post則不會在**上顯示所有的引數,不過如果你想直接檢視提交了什麼就不太方便了。
post方式:
上面提到了data引數,它就是用在這裡的,我們傳送的資料就是這個引數data,下面演示一下post方式。
import urllib.request,urllib.parse
values =
data = urllib.parse
.urlencode(values)
url = ""
response = urllib.request
.urlopen(url,data)
print(response.read())
我們引入了urllib庫,現在我們模擬登陸csdn,當然上述**可能登陸不進去,因為csdn還有個流水號的字段,沒有設定全,比較複雜在這裡就不寫上去了,在此只是說明登入的原理。一般的登入**一般是這種寫法。
我們需要定義乙個字典,名字為values,引數我設定了username和password,下面利用urllib的urlencode方法將字典編碼,命名為data,構建request時傳入兩個引數,url和data,執行程式,返回的便是post後呈現的頁面內容。
get方式:
至於get方式我們可以直接把引數寫到**上面,直接構建乙個帶引數的url出來即可。
import urllib.request
values={}
values['username'] = "[email protected]"
values['password']="***x"
data = urllib.parse.urlencode(values)
url = ""
geturl = url + "?"+data
response = urllib.request.urlopen(url)
print(response.read())
你可以列印輸出一下url,發現其實就是原來的url加?然後加編碼後的引數,
和我們平常get訪問方式一模一樣,這樣就實現了資料的get方式傳送。
———–到這裡我們就已經了解了爬蟲的一些基本使用,可以抓取到一些基本的網頁資訊啦~~~
爬蟲二 Python爬蟲入門二
1.認識爬蟲 1.1 什麼是爬蟲 爬蟲 一段自動抓取網際網路資訊的程式,從網際網路上抓取對於我們有價值的資訊。1.2 python的爬蟲架構 網頁解析器 將乙個網頁字串進行解析,可以按照我們的要求來提取出我們有用的資訊,也可以根據dom樹的解析方式來解析。網頁解析器有正規表示式 直觀,將網頁轉成字串...
Python爬蟲 二 爬蟲原理
爬蟲就是請求 並提取資料的自動化程式。其中請求,提取,自動化是爬蟲的關鍵!下面我們分析爬蟲的基本流程 發起請求 通過http庫向目標站點發起請求,也就是傳送乙個request,請求可以包含額外的header等資訊,等待伺服器響應 獲取響應內容解析內容 得到的內容可能是html,可以用正規表示式,頁面...
Python標準庫之資料抓取模組urllib
urllib是python內建的http請求庫,它包含四個子模組 request模組,它是最基本的 http 請求模組,我們可以用它來模擬傳送一請求,就像在瀏覽器裡輸入 然後敲擊回車一樣,只需要給庫方法傳入 url 還有額外的引數,就可以模擬實現這個過程了。error模組即異常處理模組,如果出現請求...