亚洲乱码中文字幕综合,中国熟女仑乱hd,亚洲精品乱拍国产一区二区三区,一本大道卡一卡二卡三乱码全集资源,又粗又黄又硬又爽的免费视频

Python 登錄網(wǎng)站詳解及實(shí)例

 更新時(shí)間:2017年04月11日 15:16:20   投稿:lqh  
這篇文章主要介紹了Python 登錄網(wǎng)站詳解及實(shí)例的相關(guān)資料,需要的朋友可以參考下

Python 登錄網(wǎng)站詳解及實(shí)例

對于大部分論壇,我們想要抓取其中的帖子分析,首先需要登錄,否則無法查看。

  這是因?yàn)?HTTP 協(xié)議是一個(gè)無狀態(tài)(Stateless)的協(xié)議,服務(wù)器如何知道當(dāng)前請求連接的用戶是否已經(jīng)登錄了呢?有兩種方式:

  1. 在URI 中顯式地使用 Session ID;
  2. 利用 Cookie,大概過程是登錄一個(gè)網(wǎng)站后會(huì)在本地保留一個(gè) Cookie,當(dāng)繼續(xù)瀏覽這個(gè)網(wǎng)站的時(shí)候,瀏覽器會(huì)把 Cookie 連同地址請求一起發(fā)送過去。

  Python 提供了相當(dāng)豐富的模塊,所以對于這種網(wǎng)絡(luò)操作只要幾句話就可以完成。我以登錄 QZZN 論壇為例,事實(shí)上下面的程序幾乎所有的 PHPWind 類型的論壇都是適用的。

# -*- coding: GB2312 -*-

from urllib import urlencode
import cookielib, urllib2

# cookie
cj = cookielib.LWPCookieJar()
opener = urllib2.build_opener(urllib2.HTTPCookieProcessor(cj))
urllib2.install_opener(opener)

# Login
user_data = {'pwuser': '你的用戶名',
       'pwpwd': '你的密碼',
       'step':'2'
      }
url_data = urlencode(user_data)
login_r = opener.open("http://bbs.qzzn.com/login.php", url_data)

 一些注釋:

  • urllib2 顯然是比 urllib 高級(jí)一點(diǎn)的模塊,里面包括了如何使用 Cookies。
  • 在 urllib2 中,每個(gè)客戶端可以用一個(gè) opener 來抽象,每個(gè) opener 又可以增加多個(gè) handler 來增強(qiáng)其功能。
  • 在構(gòu)造 opener 時(shí)指定了 HTTPCookieProcessor 做為 handler,因此這個(gè) handler 支持 Cookie。
  • 使用 isntall_opener 后,調(diào)用 urlopen 時(shí)會(huì)使用這個(gè) opener。
  • 如果不需要保存 Cookie,cj 這個(gè)參數(shù)可以省略。
  • user_data 存放的就是登錄所需要的信息,在登錄論壇的時(shí)候把這個(gè)信息傳遞過去就行了。
  • urlencode 功能是把字典 user_data 編碼成"?pwuser=username&pwpwd=password"的形式,這樣做是為了使程序易讀一些。

  最后一個(gè)問題是,pwuser、pwpwd 這類的名字是從哪兒來的,這就要分析需要登錄的網(wǎng)頁了。我們知道,一般的登錄界面都是一個(gè)表單,節(jié)選如下:

<form action="login.php?" method="post" name="login" onSubmit="this.submit.disabled = true;"> 
<input type="hidden" value="" name="forward" /> 
<input type="hidden" value="http://bbs.qzzn.com/index.php" name="jumpurl" /> 
<input type="hidden" value="2" name="step" /> 
... 
<td width="20%" onclick="document.login.pwuser.focus();"><input type="radio" name="lgt" value="0" checked />用戶名 <input type="radio" name="lgt" value="1" />UID</td> 
<td><input class="input" type="text" maxLength="20" name="pwuser" size="40" tabindex="1" /> <a href="reg1ster.php" rel="external nofollow" >馬上注冊</a></td> 
<td>密 碼</td> 
<td><input class="input" type="password" maxLength="20" name="pwpwd" size="40" tabindex="2" /> <a href="sendpwd.php" rel="external nofollow" target="_blank">找回密碼</a></td> 
... 
</form>

  從這里可以看出,我們需要輸入的用戶名密碼對應(yīng)的就是 pwuser 和 pwpwd,而 step 對應(yīng)的則是登錄(這個(gè)是嘗試出來的)。

  注意到,這個(gè)論壇表單采用的是 post 方式,如果是 get 方式則本文的方法就需要變動(dòng)一下,不能直接 open,而是應(yīng)該首先 Request,然后再 open。更詳細(xì)的請看手冊...

感謝閱讀,希望能幫助到大家,謝謝大家對本站的支持!

相關(guān)文章

  • Python巧用SnowNLP實(shí)現(xiàn)生成srt字幕文件

    Python巧用SnowNLP實(shí)現(xiàn)生成srt字幕文件

    SnowNLP是一個(gè)可以方便的處理中文文本內(nèi)容的python類庫,本文主要為大家詳細(xì)介紹了Python如何巧用SnowNLP實(shí)現(xiàn)將一段話一鍵生成srt字幕文件,感興趣的可以了解下
    2024-01-01
  • Python 搭建Web站點(diǎn)之Web服務(wù)器與Web框架

    Python 搭建Web站點(diǎn)之Web服務(wù)器與Web框架

    這篇文章主要介紹了Python 搭建Web站點(diǎn)系列文章的第一篇,主要給大家簡單介紹Web服務(wù)器與Web框架的相關(guān)資料,需要的朋友可以參考下
    2016-11-11
  • python判斷是空的實(shí)例分享

    python判斷是空的實(shí)例分享

    在本篇內(nèi)容里小編給大家整理的是關(guān)于python怎么判斷是空的相關(guān)知識(shí)點(diǎn)內(nèi)容,需要的朋友們學(xué)習(xí)下。
    2020-07-07
  • Python使用?OpenCV?進(jìn)行圖像投影變換

    Python使用?OpenCV?進(jìn)行圖像投影變換

    這篇文章主要介紹了Python使用?OpenCV?進(jìn)行圖像投影變換,文章圍繞主題展開詳細(xì)的內(nèi)容介紹,具有一定的參考價(jià)值,需要的小伙伴可以參考一下
    2022-08-08
  • Python 返回漢字的漢語拼音

    Python 返回漢字的漢語拼音

    最近做程序用到漢字轉(zhuǎn)漢語拼音的問題,首先想到Google一下,但是拿來看了一下源碼,不是甚清楚。
    2009-02-02
  • Python3運(yùn)算符常見用法分析

    Python3運(yùn)算符常見用法分析

    這篇文章主要介紹了Python3運(yùn)算符常見用法,結(jié)合實(shí)例形式分析了Python3算術(shù)運(yùn)算符、邏輯運(yùn)算符、比較運(yùn)算符、位運(yùn)算符等相關(guān)原理與操作技巧,需要的朋友可以參考下
    2020-02-02
  • matplotlib繪制符合論文要求的圖片實(shí)例(必看篇)

    matplotlib繪制符合論文要求的圖片實(shí)例(必看篇)

    下面小編就為大家?guī)硪黄猰atplotlib繪制符合論文要求的圖片實(shí)例(必看篇)。小編覺得挺不錯(cuò)的,現(xiàn)在就分享給大家,也給大家做個(gè)參考。一起跟隨小編過來看看吧
    2017-06-06
  • 通過源碼分析Python中的切片賦值

    通過源碼分析Python中的切片賦值

    因?yàn)榻?jīng)常取指定索引范圍的操作,用循環(huán)十分繁瑣,因此,Python提供了切片(Slice)操作符,能大大簡化這種操作。而下面這篇文章則通過源碼給大家分析介紹了Python中切片賦值的相關(guān)資料,需要的朋友可以參考學(xué)習(xí),下面來一起看看吧。
    2017-05-05
  • python 模擬登陸github的示例

    python 模擬登陸github的示例

    這篇文章主要介紹了python 模擬登陸github的示例代碼,幫助大家更好的理解和學(xué)習(xí)python 爬蟲的相關(guān)知識(shí),感興趣的朋友可以了解下
    2020-12-12
  • python基礎(chǔ)之文件操作

    python基礎(chǔ)之文件操作

    這篇文章主要介紹了python基礎(chǔ)之文件操作,文中有非常詳細(xì)的代碼示例,對正在學(xué)習(xí)python的小伙伴們有一定的幫助,需要的朋友可以參考下
    2021-04-04

最新評論