urllib是乙個收集了多個涉及了url的模組的包:
urllibtest.py
import urllib2
response = urllib2.urlopen(
'')print
(response.read(
))
執行結果:
資料傳送分為 post 和 get 兩種方式,兩種方式有什麼區別呢? 最重要的區別是 get 方式是直接以鏈結形式訪問,鏈結中包含了所有的引數,當然如果包含了密碼的話是一種不安全的選擇,不過你可以直觀地看到自己提交了什麼內容。post 則不會在**上顯示所有的引數,不過如果你想直接檢視提交了什麼就不太方便了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)
(response.read(
))
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']=
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入門,個人感覺寫的非常不錯,在粗略的學習了一遍之後感覺可以開始我的爬蟲之旅了。目標 抓取中妹子的儲存在本地 接下...