国产探花免费观看_亚洲丰满少妇自慰呻吟_97日韩有码在线_资源在线日韩欧美_一区二区精品毛片,辰东完美世界有声小说,欢乐颂第一季,yy玄幻小说排行榜完本

首頁 > 編程 > Python > 正文

Python 登錄網站詳解及實例

2020-02-23 04:34:59
字體:
來源:轉載
供稿:網友

Python 登錄網站詳解及實例

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

  這是因為 HTTP 協議是一個無狀態(Stateless)的協議,服務器如何知道當前請求連接的用戶是否已經登錄了呢?有兩種方式:

    在URI 中顯式地使用 Session ID; 利用 Cookie,大概過程是登錄一個網站后會在本地保留一個 Cookie,當繼續瀏覽這個網站的時候,瀏覽器會把 Cookie 連同地址請求一起發送過去。

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

# -*- coding: GB2312 -*-from urllib import urlencodeimport cookielib, urllib2# cookiecj = cookielib.LWPCookieJar()opener = urllib2.build_opener(urllib2.HTTPCookieProcessor(cj))urllib2.install_opener(opener)# Loginuser_data = {'pwuser': '你的用戶名',       'pwpwd': '你的密碼',       'step':'2'      }url_data = urlencode(user_data)login_r = opener.open("http://bbs.qzzn.com/login.php", url_data)

 一些注釋:

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

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

<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>            
發表評論 共有條評論
用戶名: 密碼:
驗證碼: 匿名發表
主站蜘蛛池模板: 上虞市| 清水河县| 江西省| 南木林县| 西青区| 甘孜县| 长汀县| 老河口市| 都江堰市| 漠河县| 岫岩| 凤山县| 建昌县| 南安市| 义马市| 海林市| 巴塘县| 丹巴县| 铁力市| 浪卡子县| 拜城县| 仪陇县| 泗阳县| 尉犁县| 林甸县| 简阳市| 白水县| 汾西县| 全州县| 九龙城区| 咸宁市| 江川县| 武胜县| 沐川县| 惠东县| 罗山县| 离岛区| 齐河县| 临夏市| 巨野县| 墨脱县|