最新国产好看的视频,伊人天堂AV在线,国产Aaaaaa视频,蜜臀视频在线观看一区,人妻av色图,密臀久久久精品影片,青青视频免费观看毛片,久草在线观看视,国产三级精品色情在线

Python 爬蟲模擬登陸知乎

 更新時間:2016年09月23日 16:14:27   作者:O賣女孩的小火柴O  
這篇文章主要介紹了Python 爬蟲模擬登陸知乎的相關(guān)資料,非常不錯,具有參考借鑒價值,需要的朋友可以參考下

在之前寫過一篇使用python爬蟲爬取電影天堂資源的文章,重點是如何解析頁面和提高爬蟲的效率。由于電影天堂上的資源獲取權(quán)限是所有人都一樣的,所以不需要進行登錄驗證操作,寫完那篇文章后又花了些時間研究了一下python模擬登陸,網(wǎng)上關(guān)于這部分的資料很多,很多demo都是登陸知乎的,原因是知乎的登陸比較簡單,只需要post幾個參數(shù),保存cookie。而且還沒有進行加密,很適合用來做教學(xué)。我也是是新手,一點點的摸索終于成功登陸上了知乎。就通過這篇文章分享一下學(xué)習(xí)這部分的心得,希望對那些和我一樣的初學(xué)者有所幫助。

  先來說一下,爬蟲模擬登陸的基本原理吧,我也是剛開始接觸對于一些深層次的東西也不是掌握的很清楚。首先比較重要的一個概念就是cookie,我們都知道HTTP是一種無狀態(tài)的協(xié)議,也就是說當(dāng)一個瀏覽器客戶端向服務(wù)器提交一個request,服務(wù)器回應(yīng)一個response后,他們之間的聯(lián)系就中斷了。這樣就導(dǎo)致了這個客戶端在向服務(wù)器發(fā)送請求時,服務(wù)器無法判別這兩個客戶端是不是一個了。這樣肯定是不行的。這時cookie的作用就體現(xiàn)出來了。當(dāng)客戶端向服務(wù)器發(fā)送一個請求后,服務(wù)器會給它分配一個標識(cookie),并保存到客戶端本地,當(dāng)下次該客戶端再次發(fā)送請求時連帶著cookie一并發(fā)送給服務(wù)器,服務(wù)器一看到cookie,啊原來是你呀,這是你的東西,拿走吧。所以一個爬蟲模擬登陸就是要要做到模擬一個瀏覽器客戶端的行為,首先將你的基本登錄信息發(fā)送給指定的url,服務(wù)器驗證成功后會返回一個cookie,我們就利用這個cookie進行后續(xù)的爬取工作就行了。

   我這里抓包用的就是chrome的開發(fā)者工具,不過你也可以使用Fiddler、Firebug等都可以,只不過作為一名前端er對chrome有一種特殊的喜愛之情。準備好工具接下來就要打開知乎的登陸頁面并查看https://www.zhihu.com/#signin 我們可以很容易發(fā)現(xiàn)這個請求 發(fā)送的就是登錄信息,當(dāng)然我使用手機登陸的 用郵件登陸的是最后結(jié)尾是email

所以我們只需要向這個地址post數(shù)據(jù)就行了

phone_num 登錄名
password 密碼
captcha_type 驗證碼類型(這個參數(shù)著這里并沒有實質(zhì)作用)
rember_me 記住密碼

_xsrf 一個隱藏的表單元素 知乎用來防御CSRF的(關(guān)于CSRF請打開這里) 我發(fā)現(xiàn)這個值是固定所以就在這里直接寫死了 若果有興趣的同學(xué)可以寫一個正則表達式 把這部分的值提取出來 這樣更嚴謹一些。

# -*- coding:utf-8 -*-
import urllib2
import urllib
import cookielib
posturl = 'https://www.zhihu.com/login/phone_num'
headers={
'User-Agent':'Mozilla/5.0 (Windows NT 6.1; WOW64) '
'AppleWebKit/537.36 (KHTML, like Gecko) '
'Chrome/52.0.2743.116 Safari/537.36',
'Referer':'https://www.zhihu.com/'
}
value = {
'password':'*****************',
'remember_me':True,
'phone_num':'*******************',
'_xsrf':'**********************'
}
data=urllib.urlencode(value)
#初始化一個CookieJar來處理Cookie
cookieJar=cookielib.CookieJar()
cookie_support = urllib2.HTTPCookieProcessor(cookieJar)
#實例化一個全局opener
opener=urllib2.build_opener(cookie_support)
request = urllib2.Request(posturl, data, headers)
result=opener.open(request)
print result.read()

當(dāng)你看到服務(wù)器返回這個信息的時候就說明你登陸成功了

{"r":0,
"msg": "\u767b\u5f55\u6210\u529f"
}#翻譯過來就是 “登陸成功” 四個大字

然后你就可以用這個身份去抓取知乎上的頁面了

page=opener.open("https://www.zhihu.com/people/yu-yi-56-70")
content = page.read().decode('utf-8')
print(content)

這段代碼就是通過實例化一個opener對象保存成功登陸后的cookie信息,然后再通過這個opener帶著這個cookie去訪問服務(wù)器上關(guān)于這個身份的完整頁面。更復(fù)雜的比如微博的登陸這種對請求的數(shù)據(jù)進行加密了的后面有時間再寫出來,與大家分享

相關(guān)文章

  • OpenCV實現(xiàn)圖像平滑處理的方法匯總

    OpenCV實現(xiàn)圖像平滑處理的方法匯總

    這篇文章為大家詳細介紹了在圖像上面進行了圖像均值濾波、方框濾波 、高斯濾波、中值濾波、雙邊濾波、2D卷積等具體操作的方法,需要的可以參考一下
    2023-02-02
  • python Tornado框架詳解

    python Tornado框架詳解

    Tornado是一個 Python Web框架,用于開發(fā)高性能網(wǎng)絡(luò)應(yīng)用程序,本文給大家詳細介紹python Tornado框架的相關(guān)知識,感興趣的朋友一起看看吧
    2024-03-03
  • 分享Python中四個不常見的小技巧

    分享Python中四個不常見的小技巧

    這篇文章主要介紹了分享Python中四個不常見的小技巧,文章圍繞主題展開詳細的內(nèi)容介紹,具有一定的參考價值,需要的小伙伴可以參考一下
    2022-08-08
  • 詳解pytest分布式執(zhí)行插件?pytest-xdist?的高級用法

    詳解pytest分布式執(zhí)行插件?pytest-xdist?的高級用法

    這篇文章主要介紹了pytest分布式執(zhí)行插件?pytest-xdist?的高級用法,本文給大家介紹的非常詳細,對大家的學(xué)習(xí)或工作具有一定的參考借鑒價值,需要的朋友可以參考下
    2022-08-08
  • Python魔術(shù)方法詳解

    Python魔術(shù)方法詳解

    這篇文章主要介紹了Python魔術(shù)方法詳解,本文講解了構(gòu)造和初始化、用于比較的魔術(shù)方法、數(shù)值處理的魔術(shù)方法、普通算數(shù)操作符等內(nèi)容,需要的朋友可以參考下
    2015-02-02
  • Python建立多元回歸方程的實現(xiàn)

    Python建立多元回歸方程的實現(xiàn)

    在Python中,可以使用scikit-learn和statsmodels等庫來建立多元線性回歸模型,本文主要介紹了Python建立多元回歸方程的實現(xiàn),具有一定的參考價值,感興趣的可以了解一下
    2023-11-11
  • Python中Django與Echarts的結(jié)合用法圖文詳解

    Python中Django與Echarts的結(jié)合用法圖文詳解

    ECharts是一個第三方控件,下面這篇文章主要給大家介紹了關(guān)于Python中Django與Echarts的結(jié)合用法,文中通過圖文介紹的非常詳細,需要的朋友可以參考下
    2022-10-10
  • Python使用JSON庫解析JSON數(shù)據(jù)的方法

    Python使用JSON庫解析JSON數(shù)據(jù)的方法

    這篇文章主要介紹了Python使用JSON庫解析JSON數(shù)據(jù),主要包括如何在網(wǎng)頁中獲取json數(shù)據(jù)及python內(nèi)置的json庫,本文給大家介紹的非常詳細,對大家的學(xué)習(xí)或工作具有一定的參考借鑒價值,需要的朋友可以參考下
    2022-06-06
  • Selenium啟動Chrome時配置選項詳解

    Selenium啟動Chrome時配置選項詳解

    這篇文章主要介紹了Selenium啟動Chrome時配置選項詳解,文中通過示例代碼介紹的非常詳細,對大家的學(xué)習(xí)或者工作具有一定的參考學(xué)習(xí)價值,需要的朋友們下面隨著小編來一起學(xué)習(xí)學(xué)習(xí)吧
    2020-03-03
  • Python自動調(diào)用IE打開某個網(wǎng)站的方法

    Python自動調(diào)用IE打開某個網(wǎng)站的方法

    這篇文章主要介紹了Python自動調(diào)用IE打開某個網(wǎng)站的方法,涉及Python調(diào)用系統(tǒng)win32組件的相關(guān)技巧,需要的朋友可以參考下
    2015-06-06

最新評論

神农架林区| 永康市| 旬邑县| 巫溪县| 句容市| 青州市| 洛南县| 于田县| 揭西县| 新乡县| 滨州市| 北川| 巴青县| 鹤山市| 公主岭市| 志丹县| 洪洞县| 天门市| 田东县| 鄯善县| 互助| 望都县| 那曲县| 普定县| 莱芜市| 特克斯县| 青浦区| 彰化市| 泰和县| 安国市| 阜宁县| 祁阳县| 永城市| 仲巴县| 兴国县| 安陆市| 遂昌县| 钟祥市| 镇原县| 吉隆县| 贡觉县|