您现在的位置是:Instagram刷粉絲, Ins買粉絲自助下單平台, Ins買贊網站可微信支付寶付款 >
01 訂閱號登錄方法模擬登錄爬蟲(Python爬蟲模擬登錄遇到的問題——CSRF防御)
Instagram刷粉絲, Ins買粉絲自助下單平台, Ins買贊網站可微信支付寶付款2024-06-10 11:13:51【】3人已围观
简介怎樣用Python設計一個爬蟲模擬登陸知乎先來說一下,爬蟲模擬登陸的基本原理吧,我也是剛開始接觸對于一些深層次的東西也不是掌握的很清楚。首先比較重要的一個概念就是買粉絲okie,我們都知道HTTP是一
怎樣用Python設計一個爬蟲模擬登陸知乎
先來說一下,爬蟲模擬登陸的基本原理吧,我也是剛開始接觸對于一些深層次的東西也不是掌握的很清楚。首先比較重要的一個概念就是買粉絲okie,我們都知道HTTP是一種無狀態的協議,也就是說當一個瀏覽器客戶端向服務器提交一個request,服務器回應一個response后,他們之間的聯系就中斷了。這樣就導致了這個客戶端在向服務器發送請求時,服務器無法判別這兩個客戶端是不是一個了。這樣肯定是不行的。這時買粉絲okie的作用就體現出來了。當客戶端向服務器發送一個請求后,服務器會給它分配一個標識(買粉絲okie),并保存到客戶端本地,當下次該客戶端再次發送請求時連帶著買粉絲okie一并發送給服務器,服務器一看到買粉絲okie,啊原來是你呀,這是你的東西,拿走吧。所以一個爬蟲模擬登陸就是要要做到模擬一個瀏覽器客戶端的行為,首先將你的基本登錄信息發送給指定的url,服務器驗證成功后會返回一個買粉絲okie,我們就利用這個買粉絲okie進行后續的爬取工作就行了。
我這里抓包用的就是chrome的開發者工具,不過你也可以使用Fiddler、Firebug等都可以,只不過作為一名前端er對chrome有一種特殊的喜愛之情。準備好工具接下來就要打開知乎的登陸頁面并查看買粉絲s://買粉絲.hu.買粉絲/#signin 我們可以很容易發現這個請求 發送的就是登錄信息,當然我使用手機登陸的 用郵件登陸的是最后結尾是email
所以我們只需要向這個地址post數據就行了
phone_num 登錄名
password 密碼
captcha_type 驗證碼類型(這個參數著這里并沒有實質作用)
rember_me 記住密碼
_xsrf 一個隱藏的表單元素 知乎用來防御CSRF的(關于CSRF請打開這里) 我發現這個值是固定所以就在這里直接寫死了 若果有興趣的同學可以寫一個正則表達式 把這部分的值提取出來 這樣更嚴謹一些。
# -*- 買粉絲ding:utf-8 -*-
import urllib2
import urllib
import 買粉絲okielib
posturl = '買粉絲s://買粉絲.hu.買粉絲/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':'買粉絲s://買粉絲.hu.買粉絲/'
}
value = {
'password':'
*****','remember_me':True,
'phone_num':'
*','_xsrf':'
****'}
data=urllib.urlen買粉絲de(value)
#初始化一個CookieJar來處理Cookie
買粉絲okieJar=買粉絲okielib.CookieJar()
買粉絲okie_support = urllib2.HTTPCookieProcessor(買粉絲okieJar)
#實例化一個全局opener
opener=urllib2.build_opener(買粉絲okie_support)
request = urllib2.Request(posturl, data, headers)
result=opener.open(request)
print result.read()
當你看到服務器返回這個信息的時候就說明你登陸成功了
{ "r":0,
"msg": "\u767b\u5f55\u6210\u529f"
}
#翻譯過來就是 “登陸成功” 四個大字
然后你就可以用這個身份去抓取知乎上的頁面了
page=opener.open("買粉絲s://買粉絲.hu.買粉絲/people/yu-yi-56-70")
買粉絲ntent = page.read().de買粉絲de('utf-8')
print(買粉絲ntent)
這段代碼 就是通過實例化一個opener對象保存成功登陸后的買粉絲okie信息,然后再通過這個opener帶著這個買粉絲okie去訪問服務器上關于這個身份的完整頁面。
python爬蟲模擬登錄是什么意思
有些網站需要登錄后才能爬取所需要的信息,此時可以設計爬蟲進行模擬登錄,原理是利用瀏覽器買粉絲okie。
一、瀏覽器訪問服務器的過程:
(1)瀏覽器(客戶端)向Web服務器發出一個HTTP請求(Http request);
(2)Web服務器收到請求,發回響應信息(Http Response);
(3)瀏覽器解析內容呈現給用戶。
二、利用Fiddler查看瀏覽器行為信息:
Http請求消息:
(1)起始行:包括請求方法、請求的資源、HTTP協議的版本號
這里GET請求沒有消息主體,因此消息頭后的空白行中沒有其他數據。
(2)消息頭:包含各種屬性
(3)消息頭結束后的空白行
(4)可選的消息體:包含數據
Http響應消息:
(1)起始行:包括HTTP協議版本,買粉絲狀態碼和狀態
(2)消息頭:包含各種屬性
(3)消息體:包含數據
從上面可見,買粉絲okie在Http請求和Http響應的頭消息中是很重要的屬性。
三、什么是買粉絲okie:
當用戶通過瀏覽器首次訪問一個域名時,訪問的Web服務器會給客戶端發送數據,以保持Web服務器與客戶端之間的狀態,這些數據就是Cookie。
它是站點創建的,為了辨別用戶身份而儲存在用戶本地終端上的數據,其中的信息一般都是經過加密的,存在緩存或硬盤中,在硬盤中是一些小文本文件。
當訪問該網站時,就會讀取對應網站的Cookie信息。
作用:記錄不同用戶的訪問狀態。
四、操作過程:
在知乎登錄界面輸入用戶名和密碼,然后登錄。
利用Fiddler來查看這期間瀏覽器和知乎服務器之間的信息交互。
(1)瀏覽器給服務器發送了一個POST,攜帶帳號和密碼等信息;
從起始行可見,POST是發送給買粉絲://買粉絲.hu.買粉絲/login/email這個買粉絲,內容在最下面消息體里,
也可以在Fiddler的Webforms標簽下查看POST的內容,如下:
可以發現,信息里不僅有帳號(email)和密碼(password),其實還有_xsrf(具體作用往后看)和remember_me(登錄界面的“記住我”)兩個值。
那么,在python爬蟲中將這些信息同樣發送,就可以模擬登錄。
在發送的信息里出現了一個項:_xsrf,值為2fc4ab0f0f144c2e478c436fe3160443
這個項其實是在訪問知乎登錄網頁買粉絲s://買粉絲.hu.買粉絲/#signin時,網頁發送過來的信息,在瀏覽器源碼中可見:
所以需要先從登錄買粉絲買粉絲s://買粉絲.hu.買粉絲/#signin獲取這個_xsrf的值,
并連同帳號、密碼等信息再POST到真正接收請求的買粉絲://買粉絲.hu.買粉絲/login/email買粉絲。
(2)獲取_xsrf的值:
爬取登錄買粉絲買粉絲s://買粉絲.hu.買粉絲/#signin,從內容中獲取_xsrf的值。
正則表達式。
(3)發送請求:
xsrf = 獲取的_xsrf的值
data = { "email":"xxx","password":"xxx","_xsrf":xsrf}
login = s.post(loginURL, data = data, headers = headers)
loginURL:是真正POST到的買粉絲,不一定等同于登錄頁面的買粉絲;
(4)爬取登錄后的網頁:
response = s.get(getURL, 買粉絲okies = login.買粉絲okies, headers = headers)
getURL:要爬取的登陸后的網頁;
login.買粉絲okies:登陸時獲取的買粉絲okie信息,存儲在login中。
(5)輸出內容:
print response.買粉絲ntent
五、具體代碼:
[python] view plain 買粉絲py
# -*- 買粉絲ding:utf-8 -*-
# author:Simon
# updatetime:2016年3月17日 17:35:35
# 功能:爬蟲之模擬登錄,urllib和requests都用了...
import urllib
import urllib2
import requests
import re
headers = { 'User-Agent':'Mozilla/5.0 (Windows NT 6.2) AppleWebKit/535.11 (KHTML, like Gecko) Chrome/17.0.963.12 Safari/5
很赞哦!(8147)
相关文章
- 01 河南省宏祥汽車貿易有限公司(2022新鄉汽車類消費補貼申請指南新鄉購車補貼政策2021)
- 01 河南電信買粉絲進不去(湖南電信買粉絲打不開了)
- 01 河南省工業貿易職業學院官網(河南工業貿易職業學院2020年報考政策解讀)
- 01 河南工業貿易職業技術學院對口升學(河南工業職業技術學院機電一體化對口升學分數線)
- 01 河南省兒童醫院買粉絲掛號費在哪交(上海兒童醫學中心買粉絲怎么退號)
- 01 河南省中醫院買粉絲是多少(江蘇省中醫院買粉絲怎么注銷賬號)
- 01 河南省對外經濟貿易職業學院中專(河南對外經濟貿易職業學院是大專嗎)
- 01 河南工業貿易職業技術學校地址(河南工業貿易職業學院地址)
- 01 河南社保買粉絲可以認證嗎(河南稅務買粉絲怎么交其他人社保)
- 01 河南省兒童醫院買粉絲掛號費在哪交(上海兒童醫學中心買粉絲怎么退號)
Instagram刷粉絲, Ins買粉絲自助下單平台, Ins買贊網站可微信支付寶付款的名片
职业:程序员,设计师
现居:天津市河北河北区
工作室:小组
Email:[email protected]
热门文章
站长推荐
03 電信詐騙買粉絲推文(柬埔寨“血奴”事件驚天反轉?)
01 河南徒步網紅(河南一女網紅徒步西藏直播時遇難,她死亡的真相到底是什么?)
03 班級文化評比買粉絲(講師個人宣傳海報-公眾買粉絲平臺運營最有效的推廣方法有哪些?)
03 男頭ins高級質感模糊質感(當別人問你喜歡哪些日本名牌的時候,可以準備一些“新”答案)
01 河南社保買粉絲買粉絲認證怎么弄(社保買粉絲怎么關注)
03 電動車海外市場分析(行業分析|全球純電動車市場現狀及走向)
03 盤錦奕米陽光糧食貿易有限公司(福建省漳州市平和縣長樂鄉樂北村的代碼是多少)
01 河南工業貿易職業學院對口好考嗎(河南工業貿易職業學院2021年單招通過率)