python訪問需要登入的網頁

2021-08-31 19:40:21 字數 1403 閱讀 5595

有些網頁需要你登入之後才可以訪問,你需要提供賬戶和密碼。

只要在傳送http請求時,帶上含有正常登陸的cookie就可以了。

1.首先我們要先了解cookie的工作原理。

cookie是由伺服器端生成,傳送給user-agent(一般是瀏覽器),瀏覽器會將cookie的key/value儲存到某個目錄下的文字檔案內,下次請求同一**時就傳送該cookie給伺服器(前提是瀏覽器設定為啟用cookie)。cookie名稱和值可以由伺服器端開發自己定義,對於jsp而言也可以直接寫入jsessionid,這樣伺服器可以知道該使用者是否合法使用者以及是否需要重新登入等。

2.之後我們要獲取到使用者正常登入的cookie.

python提供了cookiejar的庫,只要把cookiejar的例項作為引數傳到urllib2的乙個opener裡面。

然後訪問一次登入的頁面,cookie就已經儲存下來了。之後通過這個例項訪問所有的頁面都帶有正常登陸的cookie了。

以人人網為例子。

#encoding=utf-8

import urllib2

import urllib

import cookielib

def renrenbrower(url,user,password):

#登陸頁面,可以通過抓包工具分析獲得,如fiddler,wireshark

login_page = ""

try:

#獲得乙個cookiejar例項

cj = cookielib.cookiejar()

#cookiejar作為引數,獲得乙個opener的例項

#偽裝成乙個正常的瀏覽器,避免有些web伺服器拒絕訪問。

opener.addheaders = [('user-agent','mozilla/4.0 (compatible; msie 6.0; windows nt 5.1)')]

#生成post資料,含有登陸使用者名稱密碼。

data = urllib.urlencode()

#以post的方法訪問登陸頁面,訪問之後cookiejar會自定儲存cookie

opener.open(login_page,data)

#以帶cookie的方式訪問頁面

op=opener.open(url)

#讀取頁面原始碼

data= op.read()

return data

except exception,e:

print str(e)

#訪問某使用者的個人主頁,其實這已經實現了人人網的簽到功能。

print renrenbrower("","使用者名稱","密碼")

python 網頁訪問

1 在python3中只有urllib乙個庫,這裡面整合了原來的urllib和urllib2 2import urllib.request34 定義乙個request物件,傳入乙個url完整位址,並用request函式。5 request urllib.request.request 67 開啟ur...

python爬蟲模擬登入網頁 登入wish

wish登入頁面 是js寫的,在上面找登入鏈結很麻煩,直接故意寫錯登入賬號和密碼 獲得登入鏈結 上 import requests url1 url2 header 8或者不指定。data 獲得post請求的session物件 sesssion requests.session sesssion.p...

爬取需要登入的網頁內容,獲取cookie

首先需要獲取到網頁的cookie,例如爬取人人網登入後的 為找到cookie,如下圖 最後 如下就可以模擬網頁登入了 import urllib.request import urllib.parse url cookie anonymid jxsntfqs ofu0t6 depovince zgq...