Python爬蟲入門三urllib庫基本使用

2021-10-13 17:13:48 字數 1988 閱讀 1348

urllib是乙個收集了多個涉及了url的模組的包:

urllibtest.py

import urllib2

response = urllib2.urlopen(

'')print

(response.read(

))

執行結果:

c:\python27\python.exe h:/spiderexercise/spidertest/urllibtest.py

urlopen()一般接受三個引數。

urlopen(url, data, timeout)

urlopen()引數可以傳入乙個request請求,即request類的例項。構造request時傳入url,data。

urllibtest.py

import urllib2

url =

""request = urllib2.request(url)

response = urllib2.urlopen(request)

print

(response.read(

))

資料傳送分為 post 和 get 兩種方式,兩種方式有什麼區別呢? 最重要的區別是 get 方式是直接以鏈結形式訪問,鏈結中包含了所有的引數,當然如果包含了密碼的話是一種不安全的選擇,不過你可以直觀地看到自己提交了什麼內容。post 則不會在**上顯示所有的引數,不過如果你想直接檢視提交了什麼就不太方便了

post方式

我們引入了 urllib 庫,現在我們模擬登陸 csdn

urllibtest.py

import urllib

import urllib2

values =

data = urllib.urlencode(values)

url =

""request = urllib2.request(url,data)

response = urllib2.urlopen(request)

print

(response.read(

))

當然上述**可能登陸不進去,因為 csdn 還有個流水號的字段,沒有設定全,比較複雜在這裡就不寫上去了,在此只是說明登入的原理。一般的登入**一般是這種寫法。 我們需要定義乙個字典,名字為 values,引數我設定了 username 和 password,下面利用 urllib 的 urlencode 方法將字典編碼,命名為 data,構建 request 時傳入兩個引數,url 和 data,執行程式,返回的便是 post 後呈現的頁面內容。

get方式

至於 get 方式我們可以直接把引數寫到**上面,直接構建乙個帶引數的 url 出來即可。

import urllib

import urllib2

values=

values[

'username']=

"[email protected]"

values[

'password']=

"***x"

data = urllib.urlencode(values)

url =

""geturl = url +

"?"+data

request = urllib2.request(geturl)

response = urllib2.urlopen(request)

print

(response.read(

))

可以 print geturl,列印輸出一下 url,發現其實就是原來的 url 加?然後加編碼後的引數

Python爬蟲入門三

1.設定請求頭 我們繼續以教務系統為例,下面來模擬一下,用python登入教務系統,在入門二中分析了from data 中的資料,樣子是這樣的 from data username password x login b5 c7 a1 a1 c2 bc 那我們就在請求的時候將資料值傳過去 如下 imp...

Python爬蟲入門

今天看了菜鳥教程的python教程,準備做個小作業寫個爬蟲程式。其中主要涉及到基本語法 正規表示式 urllib和re兩個模組。import urllib 載入模組 import re defgethtml url page urllib.urlopen url html page.read ret...

python爬蟲入門

這幾天閒的無聊想做乙個爬蟲來爬取一些 正經 首先選擇用python作為爬蟲的語言。但是沒有接觸過python怎麼辦呢,只能從頭開始學了。python學習位址這個是廖大神寫的乙個python入門,個人感覺寫的非常不錯,在粗略的學習了一遍之後感覺可以開始我的爬蟲之旅了。目標 抓取中妹子的儲存在本地 接下...