杭州自學python爬蟲 自學PYTHON爬蟲

2021-10-11 13:12:30 字數 2333 閱讀 1964

response=urllib2.urlopen("")

urlopen(url,data,timeout)

第乙個引數url即為url,第二個引數data是訪問url時要傳送的資料,第三個timeout是設定超時時間。

第二三個引數是可以不傳送的,data預設為空none,timeout預設為 socket._global_default_timeout

print response.read()

response物件有乙個read方法,可以返回獲取到的網頁內容。

現在上面的程式演示了最基本的網頁抓取,不過,現在大多數**都是動態網頁,需要你動態地傳遞引數給它,它做出對應的響應。所以,在訪問時,我們需要傳遞資料給它。最常見的情況是什麼?對了,就是登入註冊的時候呀。

把資料使用者名稱和密碼傳送到乙個url,然後你得到伺服器處理之後的響應,這個該怎麼辦?下面讓我來為小夥伴們揭曉吧!

資料傳送分為post和get兩種方式,兩種方式有什麼區別呢?

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

post方式:

上面我們說了data引數是幹嘛的?對了,它就是用在這裡的,我們傳送的資料就是這個引數data,下面演示一下post方式。

import urllib

import urllib2

values =

data = urllib.urlencode(values)

url = ""

request = urllib2.request(url,data)

response = urllib2.urlopen(request)

print response.read()

import urllib

import urllib2

values=

data=urllib.urlencode(values)

url=""

request=urllib2.request(url,data)

response=urllib2.urlopen(request)

print response.read()

我們引入了urllib庫,現在我們模擬登陸csdn,當然上述**可能登陸不進去,因為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()

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加?然後加編碼後的引數

?username=1016903103%40qq.com&password=***x

?username=1016903103%40qq.com&password=***x

和我們平常get訪問方式一模一樣,這樣就實現了資料的get方式傳送。

Python自學爬蟲

解除安裝前面 這是乙個半自動爬蟲,也就是手動的比較多 也是個人學習效果展示 如果對看到的人有幫助 那再好不過了 匯入正規表示式模組和csv模組 import re import csv 讀取檔案 with open source.txt r encoding gbk as f all str f.r...

python免費自學爬蟲 python爬蟲學習

近日,學習爬蟲基礎,自己寫了乙個小指令碼。目標 每天晚上定時傳送第二天的工作專案到qq郵箱。目的 頭天晚上得到第二天的工作計畫,好決定頭天晚上是否能喝酒過量 是否能麻將通宵等等等等。哈哈!思路 1 從停電申請系統,統計出第二日的工作專案。2 每天晚上定時傳送該專案到qq郵箱。要解決的主要問題 1 從...

python爬蟲自學寶典 引言

1 通過網路向制定的url傳送請求,獲取伺服器的響應。2 使用某種技術 正規表示式,xpath等 提取頁面的資訊。3 高效的識別響應頁面中的鏈結資訊,順著這些鏈結遞迴執行上述第 一 二步。4 使用多執行緒有效的管理網路通訊互動。注 使用正規表示式雖然可以實現核心工作,但是正規表示式的效率沒有xpat...