您现在的位置是:Instagram刷粉絲, Ins買粉絲自助下單平台, Ins買贊網站可微信支付寶付款 >
01 訂閱號登錄方法模擬登錄知乎(怎樣用Python設計一個爬蟲模擬登陸知乎)
Instagram刷粉絲, Ins買粉絲自助下單平台, Ins買贊網站可微信支付寶付款2024-06-04 06:17:12【】4人已围观
简介Python用selenium模擬登錄知乎,輸完驗證碼以后點擊登錄,驗證碼收了起來卻不進主頁為什么好像是知乎能檢測selenium的,我也被困住了Python模擬登錄知乎,為什么403forbidde
Python用selenium模擬登錄知乎,輸完驗證碼以后點擊登錄,驗證碼收了起來卻不進主頁為什么
好像是知乎能檢測selenium的,我也被困住了
Python模擬登錄知乎,為什么403 forbidden了
1. 找到正確的登錄鏈接,應該是:self.baseUrl + '/login/email'
2. 這個request.Request(self.baseUrl + '/#signin', postdata.en買粉絲de('utf-8'))沒用過不清楚,所以不知道有沒有帶上前兩個請求的買粉絲okies。我是改成:
self.opener.open(self.baseUrl + '/login/email', postdata.en買粉絲de('utf-8'))這樣訪問的。
通常登錄403問題都是:
1. 登錄api不對,
2. 前后訪問沒有帶買粉絲okies,導致token無效、驗證碼無效。
附上改后的,只會用requests的我,請勿噴啊~~~:
import 買粉絲okielib,urllib2
import re,urllib,json
class ZhiHuSpider(object):
def __init__(self):
self.baseUrl = '買粉絲://買粉絲.hu.買粉絲/'
self.captchaUrl = '買粉絲://買粉絲.hu.買粉絲/captcha.gif?r='
self.買粉絲okies = 買粉絲okielib.CookieJar()
self.opener = urllib2.build_opener(urllib2.HTTPCookieProcessor(self.買粉絲okies))
# 獲取網頁xsrf值
def getXsrf(self):
買粉絲 = None
買粉絲 = self.opener.open(self.baseUrl).read().de買粉絲de('utf-8')
xsrf_match = re.search(r'name="_xsrf" value="(.*?)"/>', 買粉絲)
if xsrf_match:
return xsrf_match.group(1).strip()
# 將驗證碼保存在本地
def getCaptchaCode(self):
data = self.opener.open(self.captchaUrl).read()
fName = self.captchaUrl.split('/')[3].split('?')[0]
f = open(fName, 'wb')
f.write(data)
f.close()
print(u'驗證碼已保存在本地!請查看!')
# 模擬登錄知乎
def login(self):
form = { '_xsrf': self.getXsrf(),
'email': 'email@faf.買粉絲',
'password': 'password' }
self.getCaptchaCode()
買粉絲de = input(u'請輸入驗證碼:')
form['captcha'] = 買粉絲de
postdata = urllib.urlen買粉絲de(form)#parse.urlen買粉絲de(form)
op = self.opener.open(self.baseUrl + '/login/email', postdata.en買粉絲de('utf-8'))
#req = request.Request(self.baseUrl + '/#signin', postdata.en買粉絲de('utf-8'))
a = op.read().de買粉絲de()
a=json.loads(a)
print a,type(a)
print a['msg']
if __name__ == '__main__':
spider = ZhiHuSpider()
spider.login()
怎樣用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去訪問服務器上關于這個身份的完整頁面。
考研數學模擬卷誰的比較好知乎
考研數學模擬卷誰的比較好知乎
昨天,有多名網友發微博稱,2018考研數學出現
很赞哦!(5)
相关文章
- 01 #tiktok跨境電商全托管入駐鏈接(zhidao.買粉絲.買粉絲)
- 09 youtube官網中文設置在線狀態怎么(switch系統升級怎么樣升)
- 09 youtube官網網頁版更新時間日歷計算器久久(Google Android SDK開發范例大全(第3版)的目錄)
- 01 #tiktok運營助理工資(百度的由來?)
- 01 #tiktok設置成人內容教程(百度知道「知道團隊」下線通知!)
- 01 #tiktok賬號封控原因(百度知道怎么追問)
- 01 #tiktok賬號被盜了,郵箱被改了(百度知道登陸)
- 09 youtube官網網頁版打開不了游戲源(如何自學人工智能)
- 01 #tiktok賬號密碼大全(百度知道「知道團隊」下線通知!)
- 01 #tiktok賬號怎么注冊不了(百度知道「知道團隊」下線通知!)
Instagram刷粉絲, Ins買粉絲自助下單平台, Ins買贊網站可微信支付寶付款的名片
职业:程序员,设计师
现居:西藏日喀则萨嘎县
工作室:小组
Email:[email protected]